不要在rsync输出中显示目录

时间:2011-12-20 19:31:46

标签: command-line rsync

是否有人知道是否存在rsync选项,因此正在遍历的目录不会显示在stdout上。

我正在同步音乐库,而大量的目录使得很难看到实际发生了哪些文件更改。 我已经尝试了-v和-i,但两者都显示目录。

2 个答案:

答案 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