我使用备份管理器在不同的目录上进行了多次备份。例如:/home/user1/home/user2...
它给了我一些 tar 文件。 tar 文件的内容如下所示:
home/user1/
home/user1/.profile
home/user1/.bash_history
home/user1/.bash_logout
...
我试着用类似的东西来测试恢复:
tar -xvzf home.user1.tar.gz -C home/user1
但是上面的命令重新创建了所选目录中的所有结构。这给出了/home/user1/home/user1/filname1。
所以我想我应该使用指定主目录 (/home) 而不是用户目录的命令。但是删除/home 中其他用户的目录是否有任何风险?
感谢您的宝贵时间。
最佳答案
实际上 tar
默认不删除数据。但是 tar 存档中包含的任何文件都将覆盖同名文件(如果它们已经存在)。同样,如果 tar 存档不包含匹配的文件,子目录的内容将不会被覆盖。
mkdir -p foo/bar/
touch foo/file1 foo/bar/file1
tar -cf foo.tar foo/
rm -rf foo
mkdir -p foo/bar/
touch foo/file2 foo/bar/file2
tar -xf foo.tar
ls foo foo/bar/
可以看到 file1 和 file2 都存在,并且新解档的目录没有覆盖旧目录。这是我系统中 ls
的输出:
foo:
bar file1 file2
foo/bar/:
file1 file2
关于linux - tar解压能抹掉兄弟目录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32972875/