Витягніть і видаліть усі файли .gz у каталозі - Linux


81

У мене є каталог. Він має близько 500 КГц файлів.

Як я можу витягти всі файли .gz у цьому каталозі та видалити файли .gz?


.gzФайл не обов'язково повинен бути архів. У такому випадку вам не буде чого видаляти під час виступу gzip -d file.gz.
devnull

Я голосую за те, щоб закрити це питання як нетематичне,
Шанкар Дамодаран

Відповіді:


169

Це має зробити це:

gunzip *.gz

1
... окрім випадків, коли це призводить до помилки "занадто великий аргумент". У цьому випадку вам потрібно буде застосувати щось на зразок find "$dir" -maxdepth 1 -name '*.gz' -print0 | xjobs -0 -l50 -v2 gunzipобмеження екземплярів до 50 аргументів у кожному (і для їх паралельного запуску).
Тобі Спейт,

22

@techedemic правильний, але відсутній '.' згадати поточний каталог, і ця команда пройде через усі підкаталоги.

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

19

Існує не один спосіб зробити це очевидно.

    # 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

Я впевнений, що є й інші шляхи, але це, мабуть, найпростіший.

А щоб видалити його, просто виконайте a rm -rf *.gzу відповідному каталозі


3

Витягніть усі файли gz у поточному каталозі та його підкаталогах:

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

3

Якщо ви хочете витягти один файл, використовуйте:

gunzip file.gz

Він витягне файл і видалить файл .gz.



0

Спробуйте:

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 command " без лапок, щоб зрозуміти, що роблять ці команди та аргументи. Або ви можете досліджувати в Інтернеті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.