Не показывать каталоги в выводе rsync - PullRequest
24 голосов
/ 20 декабря 2011

Кто-нибудь знает, есть ли опция rsync, чтобы просматриваемые каталоги не отображались на stdout.

Я синхронизирую музыкальные библиотеки, и огромное количество каталогов сильно затрудняет просмотр изменений файлов. Я уже пробовал -v и -i, но оба показывают каталоги.

Ответы [ 2 ]

25 голосов
/ 31 октября 2012

Если вы используете --delete в своей команде rsync, проблема с вызовом grep -E -v '/$' состоит в том, что он пропускает информационные строки, такие как:

deleting folder1/
deleting folder2/
deleting folder3/folder4/

Если вы делаете резервную копию и удаленная папка была полностью стерта по причине X, она также уничтожит вашу локальную папку, потому что вы не видите удаляемых строк.

Чтобы опустить уже существующую папку, но сохранить строки удаления одновременно, вы можете использовать это выражение:

rsync -av --delete remote_folder local_folder | grep -E '^deleting|[^/]$'
12 голосов
/ 21 декабря 2011

Я бы соблазнился, используя фильтр, используя команду 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
...