我正在尝试在
中获得以下结果1.文件存档为焦油,当前日期是焦油名称的一部分。2.归档后删除的文件。
/usr/sap/st1/poc/back -test/*。txt有2个txt文件。
(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 ::没有这样的文件或目录
请帮助我继续此操作。
这将正常工作:
(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
函数中与您的%
符号产生问题