「ディレクトリの変更」オプションでtarワイルドカードを操作する方法

「ディレクトリの変更」オプションでtarワイルドカードを操作する方法

次のディレクトリ構造があります。

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

おすすめ記事