通过 ssh 进行 Tar - 如何在本地电脑的一行命令中添加排除

通过 ssh 进行 Tar - 如何在本地电脑的一行命令中添加排除
ssh [email protected] tar cvpf - /root/1 > /home/user/arc.tar.gz

需要添加

--exclude=/root/1/2

我尝试但不起作用:

ssh [email protected] tar cvpf - /root/1 > /home/user/arc.tar.gz --exclude=/root/1/2

答案1

GNUtar准确地报告了正在发生的事情。既然您正在使用--exclude我可以假设这就是您正在使用的版本吗?如果是这样,请阅读它告诉您的内容:

tar: The following options were used after non-option arguments.  These options are positional and affect only arguments that follow them.  Please, rearrange them properly.
tar: --exclude ‘/root/1/2’ has no effect
tar: Exiting with failure status due to previous errors

此错误消息应该出现在您的问题中,因为它高度相关。

解决方案是正确地重新排列参数:

tar cvpf - --exclude=/root/1/2 /root/1 > /home/user/arc.tar.gz 

我注意到您正在写入一个文件,这意味着它包含 gzip 压缩数据,但实际上并不包含(您没有告诉tar生成压缩输出流):

file /home/user/arc.tar.gz
/home/user/arc.tar.gz: POSIX tar archive (GNU)

以下是完整的修正命令:

ssh [email protected] tar czvpf - --exclude=/root/1/2 /root/1 >/home/user/arc.tar.gz 

file /home/user/arc.tar.gz
/home/user/arc.tar.gz: gzip compressed data, from Unix, original size modulo 2^32 …123456…

相关内容