是否有人知道是否存在rsync选项,因此正在遍历的目录不会显示在stdout上。
我正在同步音乐库,而大量的目录使得很难看到实际发生了哪些文件更改。 我已经尝试了-v和-i,但两者都显示目录。
答案 0 :(得分:25)
如果您在rsync命令中使用--delete,则调用grep -E -v '/$'
的问题是它将省略以下信息行:
deleting folder1/
deleting folder2/
deleting folder3/folder4/
如果您正在进行备份并且因为X原因已完全删除了远程文件夹,它也会清除您的本地文件夹,因为您没有看到删除行。
要省略现有文件夹但同时保留删除行,可以使用以下表达式:
rsync -av --delete remote_folder local_folder | grep -E '^deleting|[^/]$'
答案 1 :(得分:12)
我很想通过grep -E -v'/ $'来管道过滤,它使用行尾锚来删除以斜杠(目录)结尾的行。
这是演示终端会话,我检查了它......
cefn@cefn-natty-dell:~$ mkdir rsynctest
cefn@cefn-natty-dell:~$ cd rsynctest/
cefn@cefn-natty-dell:~/rsynctest$ mkdir 1
cefn@cefn-natty-dell:~/rsynctest$ mkdir 2
cefn@cefn-natty-dell:~/rsynctest$ mkdir -p 1/first 1/second
cefn@cefn-natty-dell:~/rsynctest$ touch 1/first/file1
cefn@cefn-natty-dell:~/rsynctest$ touch 1/first/file2
cefn@cefn-natty-dell:~/rsynctest$ touch 1/second/file3
cefn@cefn-natty-dell:~/rsynctest$ touch 1/second/file4
cefn@cefn-natty-dell:~/rsynctest$ rsync -r -v 1/ 2
sending incremental file list
first/
first/file1
first/file2
second/
second/file3
second/file4
sent 294 bytes received 96 bytes 780.00 bytes/sec
total size is 0 speedup is 0.00
cefn@cefn-natty-dell:~/rsynctest$ rsync -r -v 1/ 2 | grep -E -v '/$'
sending incremental file list
first/file1
first/file2
second/file3
second/file4
sent 294 bytes received 96 bytes 780.00 bytes/sec
total size is 0 speedup is 0.00