次のディレクトリ構造があります。
base/
files/
archives/
scripts/
私はscripts/
、一致するファイルを.gzip圧縮tarアーカイブresults.*.log
に圧縮するために実行できるスクリプトが欲しいです。files/
archives/
次のコマンドを試しています。
tar czfC ../archives/archive.tar.gz ../files results.*.log
しかし、私は理解しています
tar: results.*.log: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
しかし、
tar czfC ../archives/archive.tar.gz ../files results.a.log
期待どおりに動作します。返品
tar czf ../archives/archive.tar.gz ../files/results.*.log
ファイルにプレフィックスを追加しfiles/
て警告を発行する以外は、私が望む方法で動作します。
tar: Removing leading `../' from member names
したがって、私の結論は、tar
そのオプションを使用するとワイルドカードが正しく機能しないことです-C
。これを簡単な方法で行う方法について提案がありますか?
ベストアンサー1
より移植可能な方法で作成するには:
(cd ../files && tar cf - results.*.log) |
gzip -9 > ../archives/archive.tar.gz