Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 变量作为Sun OS 5.10中的Tar文件名_Linux_Shell_Tar_Sunos - Fatal编程技术网

Linux 变量作为Sun OS 5.10中的Tar文件名

Linux 变量作为Sun OS 5.10中的Tar文件名,linux,shell,tar,sunos,Linux,Shell,Tar,Sunos,我正试图在测试中得到以下结果 1.存档为tar的文件,当前日期作为tar名称的一部分。 2.存档后删除的文件 /usr/sap/ST1/POC/backtest/*.txt有2个txt文件 这很好,因为文件名被称为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" %

我正试图在测试中得到以下结果

1.存档为tar的文件,当前日期作为tar名称的一部分。 2.存档后删除的文件

/usr/sap/ST1/POC/backtest/*.txt有2个txt文件

这很好,因为文件名被称为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_date+%F.tar移动到sh中是有意义的


但是您必须更改xargs中的%,因为这将导致日期+%F函数中的%符号出现问题

非常感谢
(find /usr/sap/ST1/POC/backtest/*.txt) | xargs -I {} sh -c 'arc_name="arc_"`date +%F`".tar"; tar cvf "$arc_name" {} ; rm -f {}'