我试图得到以下结果
1.files归档为tar,当前日期作为tar名称的一部分 . 2.归档后删除文件 .
/usr/sap/ST1/POC/backtest/*.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 ::没有这样的文件或目录
请帮我继续这个 .
1 回答
这将正常工作:
所以你的命令的问题是
sh -c
似乎无法读取你的变量,如果我们可以调用那是可变范围可以这么说,所以将变量
arc_name="arc_"
date%F".tar"
移入sh
是有道理的 .但你必须更改
xargs
中的%
,因为这会在date +%F
函数中产生%
符号的问题