无法删除 /bin 和 /dev 的 rsync 副本的符号链接

无法删除 /bin 和 /dev 的 rsync 副本的符号链接

我意外地使用 -a 选项创建了我的根目录“/”的 rsync 副本,如下所示:

user@mycomputer:~$ rsync -a / /backup-dir
user@mycomputer:~$ ls -l /backup-dir/
total 10102784
drwxrwxrwx 1 user nogroup         0 Feb  3 18:18 bin
drwxrwxrwx 1 user nogroup         0 Feb  3 18:21 dev

我无法删除 /backup-dir/bin 和 /backup-dir/dev 或其中的任何单个文件,因为我怀疑无法删除这些目录中的符号链接。(下面显示 /backup-dir/bin,与 /backup-dir/dev 相同)。

user@mycomputer:~$ sudo rm -rf /backup-dir/bin
rm: cannot remove ‘/backup-dir/bin’: Directory not empty
user@mycomputer:~$ ls -l /backup-dir/bin
total 16384
lr-xr-xr-x 1 user root 22 Feb  3 16:11 bzcmp -> bzdiff
lr-xr-xr-x 1 user root 22 Feb  3 16:11 bzegrep -> bzgrep
lr-xr-xr-x 1 user root 22 Feb  3 16:11 bzfgrep -> bzgrep
lr-xr-xr-x 1 user root 22 Feb  3 16:11 bzless -> bzmore
lr-xr-xr-x 1 user root 26 Feb  3 16:11 dnsdomainname -> hostname
lr-xr-xr-x 1 user root 26 Feb  3 16:11 domainname -> hostname
lr-xr-xr-x 1 user root 26 Feb  3 16:11 lessfile -> lesspipe
lr-xr-xr-x 1 user root 18 Feb  3 16:11 lsmod -> kmod
lr-xr-xr-x 1 user root 26 Feb  3 16:11 nisdomainname -> hostname
lr-xr-xr-x 1 user root 22 Feb  3 16:11 open -> openvt
lr-xr-xr-x 1 user root 18 Feb  3 16:11 rbash -> bash
lr-xr-xr-x 1 user root 18 Feb  3 16:11 rnano -> nano
lr-xr-xr-x 1 user root 18 Feb  3 16:11 sh -> dash
lr-xr-xr-x 1 user root 18 Feb  3 16:11 sh.distrib -> dash
lr-xr-xr-x 1 user root 24 Feb  3 16:11 static-sh -> busybox
lr-xr-xr-x 1 user root 26 Feb  3 16:11 ypdomainname -> hostname
user@mycomputer:~$ sudo rm /backup-dir/bin/bzcmp
user@mycomputer:~$ ls -l /backup-dir/bin
total 16384
lr-xr-xr-x 1 user root 22 Feb  3 16:11 bzcmp -> bzdiff
lr-xr-xr-x 1 user root 22 Feb  3 16:11 bzegrep -> bzgrep
lr-xr-xr-x 1 user root 22 Feb  3 16:11 bzfgrep -> bzgrep
lr-xr-xr-x 1 user root 22 Feb  3 16:11 bzless -> bzmore
lr-xr-xr-x 1 user root 26 Feb  3 16:11 dnsdomainname -> hostname
lr-xr-xr-x 1 user root 26 Feb  3 16:11 domainname -> hostname
lr-xr-xr-x 1 user root 26 Feb  3 16:11 lessfile -> lesspipe
lr-xr-xr-x 1 user root 18 Feb  3 16:11 lsmod -> kmod
lr-xr-xr-x 1 user root 26 Feb  3 16:11 nisdomainname -> hostname
lr-xr-xr-x 1 user root 22 Feb  3 16:11 open -> openvt
lr-xr-xr-x 1 user root 18 Feb  3 16:11 rbash -> bash
lr-xr-xr-x 1 user root 18 Feb  3 16:11 rnano -> nano
lr-xr-xr-x 1 user root 18 Feb  3 16:11 sh -> dash
lr-xr-xr-x 1 user root 18 Feb  3 16:11 sh.distrib -> dash
lr-xr-xr-x 1 user root 24 Feb  3 16:11 static-sh -> busybox
lr-xr-xr-x 1 user root 26 Feb  3 16:11 ypdomainname -> hostname

如果出现问题,我也无法在 /backup-dir/bin 中更改权限。

更新:这引导我走向正确的方向:https://unix.stackexchange.com/a/33594

user@mycomputer:~$ sudo strace rm -f /backup-dir/bin/bzcmp
... (long message, which includes the following)...
unlinkat(AT_FDCWD, "bin/bzcmp", 0)      = 0

尝试删除unlink这些文件均失败。上面的链接建议按 inode 删除。但是,我想保留位于 /bin 中的原始文件的 inode。我只想删除符号链接,以便删除 /backup-dir/bin/ 和 /backup-dir/dev/。

欢迎提供有关如何删除 /backup-dir/bin 和 /backup-dir/dev 的建议。

答案1

如果没有其他方法有效(奇怪)我建议你再次使用rsync

mkdir empty_dir
sudo rsync -a --delete empty_dir/    /backup-dir/bin/

来源:

相关内容