2009-07-15 30 views
12

İçinde dosya ve dirs ile bir dir var. İstediğim, bu klasörden birkaç klasörün rsync kopyasını yapmak. Örneğin, bu var Diyelim:rsync sadece belirli klasörleri kopyalamak için

Ben FolderA ve folerB rsync kopyalamak istediğiniz
/home/user 
-- drwxr-xr-x folderA 
-- drwxr-xr-x folderB 
-- drwxr-xr-x folderC 
-- -rw-r--r-- file.1 
-- -rw-r--r-- file.2 

. My sorun desen dışlamak maçları sürece rsync her zaman dosyayı kopyalamak olacaktır

+ /folderA/** 
+ /folderB/** 

rsync_folders.txt dosyası oluşturduk. Ben

- /** 

eklerseniz rsync ilk desenleri dışlamak karşı eşleştiği için Ama hiçbir şey kopyalanır.

Herhangi bir fikrin var mı?

Not: Hariç tutmak istediğim tüm klasörleri ve dosyaları listeleyemiyorum. Zaman zaman değişiyor.

+1

Sorun nedir rsync --recursive folderA folderB folderC destination? – p00ya

+0

Sorun değil. Bir cevap ver ve kabul edeceğim :). –

+0

rsync/***'nin son sürümlerinde istediğinizi yaparsınız ... –

cevap

14

rsync -av src1 src2 src3 ... dst kullanın ya da rsync'e eklemek istediğiniz tüm klasörleri bir metin dosyasına (ayrı bir satırdaki her klasör) koyun ve rsync -arv --files-from=sources.txt dst kullanın.
Varsayılan olarak -a öğesinin --recursive anlamına geldiğine, ancak --files-from kullanılmayacağına dikkat edin; bu durumda -r açıkça belirtilmelidir.

+0

Test klasöründeki tüm klasörleri koymak benim için işe yaramaz, çünkü birkaç hariç tutumu kullanıyorum ve kurallar ekledim. rsync src1 src2 src3 benim için çalışıyor. –

+0

@http: //stackoverflow.com/users/4052/georgy-bolyuba ... Bir senaryo yazdım. Büyük ölçüde basitleştirerek, rsync komutunu kendim yapmak için bir işlev yaptım ve şu komutu ilettim: "scr" ve "dst" klasörleri, "argüman" (lar) ı zorunlu _rules_ ile karşılaştığında çağırdığım klasörleri. – will

İlgili konular