Sanırım --include
, --exclude
yalnızca bu dosyaları dahil etmek yerine, tarafından hariç tutulan bir dosya alt kümesini dahil etmek için kullanılır . Başka bir deyişle: anlam dahil etme, hariç tutma hakkında düşünmeniz gerekir .
Bunun yerine deneyin:
rsync -zarv --include "*/" --exclude="*" --include="*.sh" "$from" "$to"
Rsync sürüm 3.0.6 veya üstü için, sıranın aşağıdaki gibi değiştirilmesi gerekir (yorumlara bakın):
rsync -zarv --include="*/" --include="*.sh" --exclude="*" "$from" "$to"
-m
Bayrağın eklenmesi, hedefte boş dizin yapıları oluşturmaktan kaçınacaktır. 3.1.2 sürümünde test edilmiştir.
Dolayısıyla, yalnızca * .sh dosyalarını istiyorsak --exclude="*"
, tüm dosyaları hariç tutmalı , tüm dizinleri --include="*/"
içermeli ve tüm * .sh dosyalarını eklemeliyiz --include="*.sh"
.
Bölümünde bazı iyi örnekler bulabilirsiniz / içer Desen Kuralları dışla arasında adam sayfası