Как делают меня gunzip все файлы рекурсивно в целевом каталоге?

Я хотел бы знать то, что команда должна использовать для gunzip все файлы в целевом каталоге рекурсивно? Я пытался использовать разархивировать команду, но она не работала.

Я попробовал команду от, Разархивировали все zip-файлы в целевой папке?

29
задан 13 April 2017 в 05:24

2 ответа

Используя команды ниже. Замена <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>
    
15
ответ дан 23 November 2019 в 00:51

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, сжатием, сжимать-H или пакет) в каталоге /foo/bar и всех его подкаталогах:

gunzip -r /foo/bar

Это обработает имена файлов с пробелами также.

63
ответ дан 23 November 2019 в 00:51

Другие вопросы по тегам:

Похожие вопросы: