rsync'in sadece dosya üzerinde çalışması ve dizinin çalışmaması


3

Yalnızca belirli dosyaları (örneğin * .jpg) yansıtmak istiyorum, ancak rsync, hedef ana bilgisayarda üzerinde * .jpg dosyası bulunmayan boş dizinler oluşturur.

Sözdizim:

rsync -arv  
      --include '*/' 
      --include '*.flv' 
      --exclude '*' 
      host_source/ host_dest/

Tüm yolları ve dosya deseni eşleşmesini * .jpg ile bir dosya oluşturmaya çalışıyorum:

    find source/ -iname *.jpg > myfiles.txt  
/* and I use "sed" to filter the parent path to be OK */

Yani şimdi koşuyorum:

rsyn -ar --files-from=myfiles.txt host_source/ host_dest/

Bu iyi çalışıyor; "host_dest" de boş dizin oluşturulmaz, ancak "host_dest" de "host_source" da silinmesi gereken bazı dosyalar varsa, rsync bunları silmez.

Peki, rsync'e "bakmasını" nasıl söylerim? SADECE dosya düzeni için ve host_dest'te boş dizinler oluşturmuyor mu?

Delirmeden önce cevaplar için çok teşekkürler :)

Yanıtlar:


2

adam rsync:

-m, --prune-empty-dirs      prune empty directory chains from file-list

evet!, bence harika bir yöndü ... daha önce belki de rsync'in yeni versiyonundan bu seçeneği görmüyorum. ama sağduyulu kullanmak için !! Çok fazla test yapmalıyım, ama bunun gibi bir cevap vardı: rsync -a -m --del -vv --include='*.jpg' --include="*/" --exclude "*" host_source/ host_dest/
thierryForum

0

Özyinelemeli seçeneği komut satırından kaldırmayı deneyin.

rsync -a --files-from = myfiles.txt host_source / host_dest /


hiçbir şey değişmez ... "host_dest" in eski * .jpg 'si varsa silinmezler ...
thierryForum

Bu doğru, dest dizininizin kaynağınızla tam olarak eşleşmesini sağlamak için, yabancı dosyaları silmek için --delete seçeneğini eklemeniz gerekir. Adam sayfasını okumak için birkaç dakika ayırmalısın. ve @sparkle, boş dizinlerin budanması konusunda da doğrudur. Lütfen sorunuzu yanıtlayıp yanıtlamadığını belirtiniz. Teşekkürler.
X Tian

adam okudum :) rsync ile çok fazla sürecim var ... gerçekten ilk sorumu okuyor musunuz :) sorun dest desteki dosyayı nasıl sileceğimi ya da kalıp dosyasını nasıl göndereceğinizi değil dest üzerinde gerekmeyen klasör yapısını oluşturmak. ama aradığın cevap için bana çok teşekkür ederim. iyi yönün bir sonraki cevabında ve rsync'in önceki sürümünde görmediğim "--prune-empty-dirs" olduğunu düşünüyorum.
thierryForum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.