linux - tar解压能抹掉兄弟目录吗?

标签 linux shell debian backup

我使用备份管理器在不同的目录上进行了多次备份。例如:/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/

相关文章:

java - csc -version 正在终端中运行,但不是从我的 java 程序 MAC 运行

python - 无法在 Linux 上安装 pyodbc

linux - 通过 BASH 用下划线替换空格

perl - 如何在 Debian etch 上安装 Image::Magick?

docker/垃圾桶/sh : 1: : not found miniconda3

linux - 导致内核崩溃的 Perl 脚本

linux - 使用 awk 多次打印该列

python - 从 npm 命令激活虚拟环境不起作用

linux - 如何在 shell 脚本中获取 awk 的输出到数组中

mysql - 从 Windows 连接到 MySQL 服务器到 Debian Linux