Я хотел бы знать, какую команду использовать для рекурсивного извлечения всех файлов в целевом каталоге? Я попытался использовать команду unzip, но она не сработала.
Я пробовал команду из Unzip все файлы ZIP в целевой папке?
Я хотел бы знать, какую команду использовать для рекурсивного извлечения всех файлов в целевом каталоге? Я попытался использовать команду unzip, но она не сработала.
Я пробовал команду из Unzip все файлы ZIP в целевой папке?
Ответы:
Используя команды ниже. Замените <path_of_your_zips>
путь к файлам ZIP и <out>
папку назначения:
Для файлов GZ
find <path_of_your_zips> -type f -name "*.gz" -exec tar xf {} -C <out> \;
или
find <path_of_your_zips> -type f -name "*.gz" -print0 | xargs -0 -I{} tar xf {} -C <out>
Для ZIP файлов
find <path_of_your_zips> -type f -name "*.zip" -exec unzip {} -d <out> \;
или
find <path_of_your_zips> -type f -name "*.zip" -print0 | xargs -0 -I{} unzip {} -d <out>
-exec
нравится find . -type f -name "*.gz" -exec tar xzf {} -C <out> \;
?
tar: This does not look like a tar archive
gunzip
есть -r
вариант. От man gunzip
:
-r --recursive
Travel the directory structure recursively. If any of the
file names specified on the command line are directories, gzip
will descend into the directory and compress all the files it finds
there (or decompress them in the case of gunzip ).
Итак, если вы хотите, чтобы gunzip
все сжатые файлы ( gunzip
можно распаковывать файлы, созданные с помощью gzip, zip, compress, compress -H или pack) внутри каталога /foo/bar
и всех его подкаталогов:
gunzip -r /foo/bar
Это будет обрабатывать имена файлов с пробелами тоже.