2017-02-28 64 views
0

tar文件名,我試圖讓存檔與當前日期作爲焦油名稱的一部分焦油變量作爲SunOS的5.10

1.files以下結果。 2.文件一旦存檔就被刪除。

/usr/sap/ST1/POC/backtest/*.txt has 2 txt files.

(find /usr/sap/ST1/POC/backtest/*.txt)| xargs -I % sh -c 'tar cvf arc_2017-02-28.tar % ; rm -f %' 

作爲文件名被提及作爲arc_2017-02-28.tar這工作得很好。

但是,當我嘗試這樣做:

arc_name="arc_"`date +%F`".tar" 
(find /usr/sap/ST1/POC/backtest/*.txt)| xargs -I % sh -c 'tar cvf "$arc_name" % ; rm -f %' 

的輸出是一個錯誤:

tar: : No such file or directory

請幫助我繼續。

回答

1

這將正常工作:

(find /usr/sap/ST1/POC/backtest/*.txt) | xargs -I {} sh -c 'arc_name="arc_"`date +%F`".tar"; tar cvf "$arc_name" {} ; rm -f {}' 

所以用你的命令中的問題是,sh -c似乎無法讀取您的變量,如果我們可以稱之爲是可變的,範圍可以這麼說,

因此將變量arc_name="arc_"日期+%F ".tar"轉換爲sh是有意義的。

,但你將不得不改變%xargs,因爲這會date +%F函數產生一個問題,你%符號

+0

非常感謝你 –