1

Я хотел бы сжать каталог, полный сжатых файлов, и направить вывод (сохраняя исходные файлы) в другой каталог. Мне нужны оригинальные имена, чтобы остаться прежним. Так...

gunzip -c *.gz > file/path/filename 

# Search for all .gz in current directory and redirect output here. How do I grab the name of the file found using the wildcard?

Спасибо за помощь

Обновление: финальный скрипт ниже

FILES= /foo/bar/*.gz
for gz in $FILES; do
echo "unzipping $gz..." 1>&2
fn=$(basename $gz .gz)
gunzip -c $gz > /new/foobar/$fn
done

2 ответа2

1

Вы можете использовать вместо этого сценарий оболочки:

for f in *.gz
do
    zcat "$f" > "other/folder/$(basename "$f" ".gz")"
done
0

С помощью GNU Parallel вы можете делать:

parallel gunzip -c {} '>' /new/foobar/{/.} ::: /foo/bar/*.gz

Установка GNU Parallel занимает буквально 10 секунд:

wget pi.dk/3 -qO - | sh -x

Посмотрите вступительные видео, чтобы узнать больше: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .