相关疑难解决方法(0)

为什么 rsync 在 Linux 中无法从 /sys 复制文件?

我有一个用于rsync在 Archlinux 中备份文件的 bash 脚本。我注意到rsync无法从 复制文件/sys,但cp工作正常:

# rsync /sys/class/net/enp3s1/address /tmp    
rsync: read errors mapping "/sys/class/net/enp3s1/address": No data available (61)
rsync: read errors mapping "/sys/class/net/enp3s1/address": No data available (61)
ERROR: address failed verification -- update discarded.
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]

# cp  /sys/class/net/enp3s1/address /tmp   ## this works
Run Code Online (Sandbox Code Playgroud)

我想知道为什么会rsync失败,是否可以用它复制文件?

linux arch-linux rsync sysfs

14
推荐指数
2
解决办法
1万
查看次数

为什么 cp --no-preserve=mode 保留模式?可用的替代工具?

$ cp --no-preserve=mode --parents /sys/power/state /tmp/test/
$ cp --no-preserve=mode --parents /sys/bus/cpu/drivers_autoprobe /tmp/test/
Run Code Online (Sandbox Code Playgroud)

两行中的第二行将失败

cp: cannot make directory ‘/tmp/test/sys/bus’: Permission denied
Run Code Online (Sandbox Code Playgroud)

原因是它/tmp/test/sys是在没有写权限的情况下创建的(和原来的一样/sys);正常人mkdir /tmp/test/sys2不会这样做:

$ ls -la /tmp/test/
total 32
drwxr-xr-x  3 robert.siemer domain^users  4096 Oct 11 13:56 .
drwxrwxrwt 13 root          root         20480 Oct 11 13:56 ..
dr-xr-xr-x  3 robert.siemer domain^users  4096 Oct 11 13:56 sys
drwxr-xr-x  2 robert.siemer domain^users  4096 Oct 11 13:59 sys2
Run Code Online (Sandbox Code Playgroud)

我怎样才能指示cp不保留模式,除了--no-preserve=mode,它不像我认为的那样工作......?

或者我应该使用哪种工具来复制文件列表而不保留符号链接之外的“任何东西”?

permissions cp symlink file-copy

7
推荐指数
1
解决办法
6934
查看次数

标签 统计

arch-linux ×1

cp ×1

file-copy ×1

linux ×1

permissions ×1

rsync ×1

symlink ×1

sysfs ×1