ターゲットディレクトリですべてのファイルを再帰的にgunzipするにはどうすればよいですか?


回答:


15

以下のコマンドを使用します。<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>
    

これは.gzファイルで機能しますか?
user2028856

1
改善、今ははい:)
AB

2
どうして-exec好きfind . -type f -name "*.gz" -exec tar xzf {} -C <out> \;じゃないの?
エリオットフリッシュ

1
g-zip圧縮されたファイルだけでなく、tarballファイルのみで動作します
Covich

1
:tarファイルは、このエラーを与えていないファイルはgzipで圧縮tar: This does not look like a tar archive
一時停止を追って通知があるまでは。

64

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、-Hまたはpackで作成されたファイルを解凍できます)が必要な場合/foo/bar

gunzip -r /foo/bar

これは、スペースを含むファイル名も処理します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.