SunOs 5.10 中变量为 Tar 文件名
Variable as Tar file name in SunOs 5.10
我试图在
中获得以下结果
1.files 存档为 tar,当前日期作为 tar 名称的一部分。
2.files 存档后删除。
/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
请帮我处理一下。
这会正常工作:
(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
函数
中的 %
符号出现问题
我试图在
中获得以下结果1.files 存档为 tar,当前日期作为 tar 名称的一部分。 2.files 存档后删除。
/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
请帮我处理一下。
这会正常工作:
(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
函数
%
符号出现问题