所以,我有一个看似简单的问题,但到目前为止我还没有找到解决方案:我想从 rsync 中排除最顶层的目录,同时仍然同步它的所有子目录。特别的问题是我无权修改最顶层目录的时间,但希望所有孩子都能正确同步时间。
我使用的 rsync 命令如下:
rsync --exclude ./ -rlptDu ./ server.example.com:/usr/local/directory/
Run Code Online (Sandbox Code Playgroud)
和server.example.com:/usr/local/directory/
看起来像这样:
drwxrws--- 5 root staff 24576 Jul 9 15:00 .
Run Code Online (Sandbox Code Playgroud)
(我的本地用户是 的成员staff
)
当我运行 rsync 时,出现以下错误:
rsync: failed to set times on "/usr/local/directory/.": Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
make: *** [pub_to_mel_internal] Error 23
Run Code Online (Sandbox Code Playgroud)
这是本地机器上的 3.0.9 版和远程机器上的 3.0.7 版,两台机器都运行 Debian。
Gil*_*il' 12
我认为rsync的过滤规则不能匹配顶级目录,所以它总是同步的。解决方法是同步此目录中的所有文件,而不是同步目录本身。
rsync -rlptDu -- * server.example.com:/usr/local/directory/
Run Code Online (Sandbox Code Playgroud)
如果最顶层目录中有点文件,并且文件名以两个点开头,则在.[!.]*
后面添加。*
..?*
归档时间: |
|
查看次数: |
8235 次 |
最近记录: |