Unixでは、ディレクトリツリー(すべてのサブディレクトリを含む)に、特定の拡張子を持つすべてのファイルを含む圧縮アーカイブ(tar.gz)をどのように作成できますか?
このようなもの :
ls -lR | grep <ext> | tar xxxx file.tar.gz
あなたが意味したのは:
find -name '*.ext' -exec tar -rzf file.tar.gz {} +
?
-name '*.ext'
接尾辞を持つすべてのファイルを検索し.ext
、-exec ... {} +
見つかったすべてのファイルを引数として渡してコマンドを実行することを意味し、tar -rzf file.tar.gz
は、ファイルを に追加することを意味しますfile.tar.gz
。引数リストが長くなりすぎて、tar
呼び出しを分割する必要がある場合に備えて「追加」します。-r
は追加-z
用、gzip-compress 用、-f
アーカイブ ファイル名の指定に使用されます。file.tar.gz
すでに存在する場合は、最初にそれが必要であることに注意してくださいrm
。
find your_path -type f -name "*.your_ext" | xargs tar -czf your_file.tar.gz