gunzip всі .gz файли в каталозі


24

У мене каталог з великою кількістю .txt.gzфайлів (імена яких не відповідають певній схемі.)

Який найпростіший спосіб до gunzipних? Я хочу , щоб зберегти свої оригінальні імена, так що вони йдуть від whatevz.txt.gzдоwhatevz.txt

Відповіді:


42

Як щодо цього лише?

$ gunzip *.txt.gz

gunzipстворить файл, згорнутий без .gzсуфікса, та видалить початковий файл за замовчуванням (детальніше див. нижче). *.txt.gzбуде розширено вашою оболонкою до всіх файлів, які відповідають.

Цей останній біт може зашкодити вам, якщо він розшириться до дуже довгого списку файлів. У такому випадку спробуйте використовувати findта -execвиконати роботу за вас.


На чоловіковій сторінці gzip(1):

gunzip takes a list of files on its command line and  replaces  each  file
whose  name  ends  with  .gz, -gz, .z, -z, or _z (ignoring case) and which
begins with the correct magic number with an uncompressed file without the
original  extension.

Примітка про "оригінальну назву"

gzip може зберігати та відновлювати ім'я файлу, що використовується під час стиснення. Навіть якщо ви перейменовуєте стислий файл, ви можете здивуватися, дізнавшись, що він знову відновиться до початкового імені.

З сторінки gzip:

За замовчуванням gzip зберігає оригінальне ім'я та часову позначку у стисненому файлі. Вони використовуються при розпакуванні файлу з -Nопцією. Це корисно, коли стиснене ім’я файлу було усічене або коли часова марка не зберігалася після передачі файлу.

Ці імена файлів, що зберігаються у метаданих, також можна переглядати за допомогою file:

$ echo "foo" > myfile_orig
$ gzip myfile_orig 
$ mv myfile_orig.gz myfile_new.gz 
$ file myfile_new.gz 
myfile_new.gz: gzip compressed data, was "myfile_orig", last modified: Mon Aug  5 08:46:39 2019, from Unix
$ gunzip myfile_new.gz        # gunzip without -N
$ ls myfile_*
myfile_new

$ rm myfile_*
$ echo "foo" > myfile_orig
$ gzip myfile_orig
$ mv myfile_orig.gz myfile_new.gz 
# gunzip with -N
$ gunzip -N myfile_new.gz     # gunzip with -N
$ ls myfile_*
myfile_orig

0

Якщо ви хочете зберегти .gzфайл, ви можете скористатися наступним: $ gunzip -c inputfile.gz >outputfile


0

Використовуйте цю команду для gunzip (розпакуйте файли gz) усіх файлів у поточному каталозі та зберігайте оригінали:

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