Wildcards
如何使用“更改目錄”選項使 tar 萬用字元工作
我有以下目錄結構:
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 somedir
會somedir
在目前目錄中展開任何 glob 的工作。