gunzipに-rと-cを結合する方法は?

gunzipに-rと-cを結合する方法は?

gunzipファイル()を再帰的に試していますが、-rそのファイルを元の場所に保存する権限がありません。私はあなたが1つの個々のファイルの場所を変更することを知っていますが、gunzip {file} -c > {new file location}元のファイルの場所の元のディレクトリ構造を維持し、新しい場所に同じディレクトリ構造を持つように2つのファイルを結合する方法がわかりません。

ベストアンサー1

GNU findを持つUnix(Linuxを含む)では、再帰と反復の両方に使用できます。

 find . -name '*.gz' -exec sh -c 'gunzip -c "{}" >"/output/path/{}"' \;

他のUnix / find Embedded {}では動作しない可能性があるため、シェルが必要だと思います(Bourneish仮定)。

 find . -name '*.gz' | while read f; do gunzip -c "$f" >"/output/path/$f"; done

これは、some.gzという名前のサブディレクトリがないと仮定します。その場合は追加されます-type fみんなファイルはgzipで圧縮されており、-type fこれだけで十分です。

しかし、これはそうかもしれません簡単に到着コピーファイルツリーを書き込み可能な場所に圧縮最初(Unixにはいくつかの方法があります:cp -R、、、さらにrsync -rtar cf - | (cd somewhere; tar xf -)Windowsでもxcopy)コピーを解凍します。

おすすめ記事