首页 文章

在SunOs 5.10中作为Tar文件名变量

提问于
浏览
0

我试图得到以下结果

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 回答

  • 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_" date%F ".tar" 移入 sh 是有道理的 .

    但你必须更改 xargs 中的 % ,因为这会在 date +%F 函数中产生 % 符号的问题

相关问题