2017-02-28 68 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

非常感谢你 –