Saya mencoba menyalin semua file dan folder dari satu direktori ke direktori lain, tetapi mengecualikan file tertentu. Secara khusus, saya ingin mengecualikan file dan folder subversi. Namun, saya ingin solusi umum namun ringkas.
Saya membayangkan saya akan menemukan kebutuhan untuk mengecualikan beberapa jenis file dalam waktu dekat. Misalnya, saya mungkin ingin mengecualikan .svn, * .bak, dan * .prj.
Inilah yang saya buat untuk itu, tetapi tidak berhasil untuk saya. Bagian pertama, temukan karya, tapi saya melakukan kesalahan dengan xargs dan cp . Saya mencoba cp dengan dan tanpa -R
. Juga, saya menggunakan OS X dan tampaknya memiliki versi xargs yang kurang fitur daripada sistem linux.
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
benderanya, saya cukup yakin. Hapus itu dan Anda harus baik-baik (meskipun Anda mungkin ingin menambahkan -mindepth 1
mengabaikan direktori toplevel folder yang Anda tidak ingin menyalin, saya berasumsi)
find
perintah benar menggunakan-prune
untuk mengecualikan svn item, Anda kemudian lulus-R
bendera untukcp
yang memberitahu bahwa perintah untuk menjadi rekursif. Ketika itu terjadi, Anda kehilangan rincian apa pun yang Anda miliki dalamfind
perintah. Saya akan mengotak-atik ini sebentar, tapi saya pikir jawabannya adalah tidak menggunakan-R
dalamcp
perintah.