Rsync:跳过设置了粘滞位的文件

Rsync: skip files with sticky bit set

我正在 Linux 上备份一个 ext4 磁盘,其中一些文件的长度为零并且这些有趣的权限:

------------T。 2 myuser mygroup 0 2019 年 3 月 5 日文件名

据我了解,它们是该磁盘上以前的 glusterfs 运行 的残留物,在复制数据时可以安全地跳过它们。但是 rsync 给了我这个一般错误,可能是因为缺少读取权限:

rsync:send_files 无法打开“文件名”:权限被拒绝 (13)

如何根据设置的粘性位告诉 rsync 跳过这些文件?我想将这些问题与其他可能的文件权限问题分开。

rsync 似乎没有任何专门处理这种情况的方法,但您可以做的是预先使用 find 构建要排除的文件列表。例如:

find dir -type f ! -perm /777 >list
rsync -a --exclude-from=list dir destdir

-perm /777 查找在模式 777 中设置了至少一位的文件,而 ! 否定了这一点。