2013-04-16 2 views
61

У меня есть каталог. Он имеет около 500K .gz файлов.Извлечь и удалить все .gz в каталоге Linux

Как извлечь все .gz в этом каталоге и удалить .gz-файлы?

+0

Файл '.gz' необязательно должен быть архивом. В этом случае вам нечего было удалять при выполнении 'gzip -d file.gz'. – devnull

+0

Я голосующий, чтобы закрыть этот вопрос как не по теме, потому что он принадлежит http://unix.stackexchange.com/ –

ответ

1
for foo in *.gz 
do 
    tar xf "$foo" 
    rm "$foo" 
done 
14

Существует более чем один способ сделать это, очевидно.

# This will find files recursively (you can limit it by using some 'find' parameters. 
    # see the man pages 
    # Final backslash required for exec example to work 
    find . -name '*.gz' -exec gunzip '{}' \; 

    # This will do it only in the current directory 
    for a in *.gz; do gunzip $a; done 

Я уверен, что есть и другие способы, но это, вероятно, самый простой.

И удалить его, просто сделать rm -rf *.gz в соответствующем каталоге

129

Это следует сделать это:

gunzip *.gz 
+1

... если только это не дает вам ошибку «слишком большой ошибки». В этом случае вы хотите использовать что-то вроде 'find '$ dir" -maxdepth 1 -name' * .gz '-print0 | xjobs -0 -l50 -v2 gunzip', чтобы ограничивать экземпляры до 50 аргументов каждый (и запускать их параллельно). –

2

извлечь все файлы GZ в текущем каталоге и его подкаталогах:

find . -name "*.gz" | xargs gunzip 
14

@techedemic является правильным, но отсутствует. чтобы указать текущий каталог, и эта команда проходит через все подкаталоги.

find . -name '*.gz' -exec gunzip '{}' \; 
0

Try:

ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 tar xvfz 

Тогда попробуйте:

ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 rm 

Это распаковка все .tar.gz файлы в текущем каталоге, а затем удалить все файлы .tar.gz. Если вам нужно объяснение, «|» принимает перед ним команду stdout и использует это как stdin команды после нее. Используйте команду «man » «без кавычек, чтобы выяснить, что делают эти команды и аргументы. Или вы можете исследовать онлайн.

3

Если вы хотите извлечь одноразовое использование файла:

Gunzip file.gz

Это будет извлечь файл и удалите файл .gz.

+0

дублированный ответ из этой темы: https://stackoverflow.com/a/20103343/1847249 –

Смежные вопросы