2011-12-20 36 views
18

Bir rsync seçeneği olup olmadığını bilen herhangi biri var mı, bu nedenle geçiş yapılan dizinler stdout'ta gösterilmez.rsync çıkısındaki dizinleri gösterme

Müzik kitaplıklarını eşzamanlıyorum ve büyük miktarda dizin aslında hangi dosya değişikliklerinin gerçekte olduğunu görmeyi çok zorlaştırıyor. Zaten denedim -v ve -i, ama her ikisi de dizinleri gösterir.

cevap

19

Bu seçenekte, rsync komutu --delete kullanıyorsanız, grep -E -v '/$' arayarak sorunu, gibi bilgilerin satır atlamak olacaktır ... bunu kontrol demo terminali oturumu var : Eğer silme hatları görmüyorum çünkü

deleting folder1/ 
deleting folder2/ 
deleting folder3/folder4/ 

bir yedekleme ve uzaktan klasörü yapıyorsanız tamamen X nedenle sildi edilmiş, aynı zamanda yerel klasör silecek.

mevcut klasörü ihmal ama aynı zamanda silme satırları tutmak için, bu ifadeyi kullanabilirsiniz:

rsync -av --delete remote_folder local_folder | grep -E '^deleting|[^/]$' 
+0

İyi cevap. Dosya senkronizasyonu için komutu çalıştırmadan önce kuru bir çalışma yapmayı seviyorum, bu yüzden '-n' seçeneğini kullanıyorum. Okunabilirlik için, boş satırı eklemek için grep normal ifadesini değiştirdim, 'rsync -av --delete remote_folder local_folder | grep -E '^ silme | [^ /] $ |^$' ' –

11

Bir eğik çizgi (bir dizin) ile sonlanan satırları kaldırmak için bir satır bağlantı çapası kullanan grep -E -v '/ $' üzerinden pipetleme kullanarak süzgeç kullanmayı cazip buluyorum. İşte

[email protected]:~$ mkdir rsynctest 
[email protected]:~$ cd rsynctest/ 
[email protected]:~/rsynctest$ mkdir 1 
[email protected]:~/rsynctest$ mkdir 2 
[email protected]:~/rsynctest$ mkdir -p 1/first 1/second 
[email protected]:~/rsynctest$ touch 1/first/file1 
[email protected]:~/rsynctest$ touch 1/first/file2 
[email protected]:~/rsynctest$ touch 1/second/file3 
[email protected]:~/rsynctest$ touch 1/second/file4 

[email protected]:~/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 


[email protected]:~/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 
+5

Ben aynı sonuca kendim geldi. Rsync'in bunu yapmak için bir anahtarı olmadığı aptalca görünüyor. Önerin için teşekkürler! –