Tüm dosya ve klasörleri bir dizinden diğerine kopyalamaya çalışıyorum, ancak belirli dosyaları hariç tutuyorum. Özellikle, alt sürüm dosyaları ve klasörleri hariç tutmak istiyorum. Ancak genel ama özlü bir çözüm istiyorum.
Yakın gelecekte birkaç tür dosyayı hariç tutma ihtiyacını bulacağımı düşünüyorum. Örneğin, .svn, * .bak ve * .prj'yi hariç tutmak isteyebilirim.
İşte benim için böyle bir araya getirdim, ama benim için çalışmıyor. İlk bölüm, iş bulmak, ama ben xargs ve cp ile yanlış bir şey yapıyorum . Ben ile ve olmadan cp denedim -R
. Ayrıca, OS X kullanıyorum ve Linux sistemlerinden daha az özellikli xargs sürümüne sahip gibi görünüyor .
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
ben eminim, bayrağı. Bunu kaldırın ve iyi olmalısınız ( -mindepth 1
kopyalamak istemediğiniz en üst düzey dizin klasörünü yok saymak için eklemek isteyebilirsiniz, ancak sanırım)
find
komut düzgün kullanır-prune
öğeleri .svn dışlamak için, daha sonra pas-R
bayrağıcp
söyler o özyinelemeli olmak komutu. Bunu yaptığınızda,find
komutta sahip olduğunuz ayrıntı düzeyini kaybedersiniz . Bir dakika bununla tinker gidiyorum ama cevap olduğunu düşünüyorum değil kullanımına-R
içindecp
komuta.