Wildcards

如何使用“更改目錄”選項使 tar 萬用字元工作

  • April 12, 2013

我有以下目錄結構:

base/
  files/
  archives/
  scripts/

我想要一個腳本執行scripts/,將匹配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關於如何以簡單的方式完成這項工作的任何建議?

以更便攜的方式編寫它:

(cd ../files && tar cf - results.*.log) | 
 gzip -9 > ../archives/archive.tar.gz

沒有“焦油通配”,通配是由外殼完成的。並且 shell 不知道它tar -C somedirsomedir在目前目錄中展開任何 glob 的工作。

引用自:https://unix.stackexchange.com/questions/71462