我正在设置 rsyncrypto 来创建我的用户目录的备份。我读到要排除目录,我需要使用 find 并管道到 rsyncrypto 来排除。
我正在尝试排除所有.svn 目录的加密和同步。
以下是我正在使用的 find 命令。我在输出中没有看到任何 .svn 目录:
查找〜/ Documents -type d(-name .svn)-prune -o -print
但是当我将输出传送到 rsyncrypto 时,我看到许多 .svn 目录被加密。
查找 ~/Documents -type d ( -name .svn ) -prune -o -print | rsyncrypto -vc --trim=3 --filelist - /tmp/Documents/ Documents.keys backup.crt
有人可以帮我重写命令以从 rsyncrypto 中排除路径中包含 .svn 的任何文件/文件夹吗?
答案1
您原来的 find 命令会打印除.svn
目录下目录之外的所有目录,特别是它会打印~/Documents
。 实验上,rsynccrypto 会递归到文件列表中所有现有目录,尽管(我想和您一样)我理解文档说它应该只递归到附加了 的目录中/
。
因此,您只需要打印非目录的文件。这意味着您必须限制-print
为-type f
(仅备份常规文件)或! -type d
(备份所有非目录,包括符号链接)。
find ~/Documents -type d \( -name .svn -o -name .DS_Store \) -prune \
-o \! -type d -print
请注意,这不会备份目录或空目录的修改时间和所有权。这也包括空目录:
find ~/Documents -type d \( -name .svn -o -name .DS_Store \) -prune \
-o \! -type d -print \
-o -type d -empty -print