0

我正在将用户主目录的 .tar 备份复制到新服务器,并且已经将 tarball 从旧服务器复制到新服务器。

例如;

[root@example.com /home]# ls /home |grep tar
returns:
user1.tar
user2.tar
user3.tar
[etc]

但是让事情变得有点棘手,压缩包是从原始服务器上的根目录创建的,因此默认提取在默认路径中具有“主目录”,例如;

[root@example.com /home]# tar -xvf user1.tar 

提取到相对于您运行命令的位置的新主目录,并将提取的文件放在路径中

/home/home/user1

我相信我已经达到了最接近的要求(有一些不同的变化);

[root@example.com /]# ls /home |grep tar |tar -xvf -

返回;

tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

现在我意识到每个不同的部分都有很多解决方法,但是如果我要长大成为像我的朋友一样的超酷系统管理员,我可能应该知道像这样的超酷技巧。

谢谢!

4

1 回答 1

1

tar需要标准输入上的 tar 文件,而不是文件名列表。

分别处理每个文件:

ls *.tar | xargs -n 1 tar xvf

或者

for file in *.tar; do tar xvf $file; done
于 2013-09-14T20:14:54.653 回答