Gunzip каталог файлов и каналов вывода Linux
Я бы хотел сжать каталог, полный сжатых файлов, и направить вывод (сохраняя исходные файлы) в другой каталог. Мне нужны оригинальные имена, чтобы остаться прежним. Так...
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 ответа
Решение
Вы можете использовать вместо этого сценарий оболочки:
for f in *.gz
do
zcat "$f" > "other/folder/$(basename "$f" ".gz")"
done
С 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