Используя этот вопрос, я «сжал» папку с тысячами изображений на сервере apache. Это, очевидно, изменило файлы внутри самой папки и заархивировало файлы. Но это не проблема, атм.

Я скачал этот файл .tar.gz , распаковал его с помощью 7-zip и получил файл .tar , который затем снова открыл с помощью 7-zip и когда я его извлек, но все изображения внутри все еще имеют расширение .gz :\

Сейчас существует более 9000 файлов (например, около 9400 файлов) с расширением .gz , которые мне не нужны. Я не могу пойти и извлечь каждый в отдельности.

Есть ли способ извлечь каждое изображение и удалить файлы .gz за один раз?

Спасибо

2 ответа2

2

Да.

Самый простой способ (при условии, что не более 2000 файлов) - использовать подстановочный знак: gunzip *.gz

Если есть еще файлы или они есть в подкаталогах, попробуйте это:

find /path/to/files/ -name "*.gz" -exec gunzip {} +

Причина в том, что списки аргументов имеют ограниченное пространство; gunzip *.gz потерпит неудачу, если вы попробуете его с большим количеством файлов одновременно.

Найти объяснение:

find /path/to/files/   Finds all files in that path (and in subdirs)  
-name "*.gz"           Filter on name
-exec                  For each name execute a program.
{}                     The name of the program
+                      Feed the program as many arguments as possible in one go
                       (if you use ';', it will run gunzip once for each file).

Если у вас есть папки с именами, заканчивающимися на .gz , вы можете добавить -type f чтобы find только обычные файлы.

1

Таким образом, ответ, в конце концов, состоял в том, чтобы просто выбрать все, и щелкнуть правой кнопкой мыши на 7zip и выбрать извлечение здесь.

А потом просто удалите .gz файлы.

Хеннес тоже дал очень хороший ответ :)

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