Saya memiliki direktori yang berisi banyak folder lain yang berisi file CoffeeScript / JavaScript. Saya dapat mengkompilasi file CoffeeScript ke folder baru dengan struktur folder yang sama baik-baik saja.
Yang ingin saya lakukan adalah menyalin semua file * .js di folder sumber ke folder tujuan secara rekursif. Saya juga tidak ingin menimpa file yang sudah ada di folder tujuan. Adakah pemikiran bagaimana mencapai ini?
Saya mencoba menggunakan cp -n source/**.js desination/
dan cp -Rn source/**.js desination/
setelah melihat pertanyaan serupa lainnya, tetapi sepertinya tidak berhasil.
Adakah yang tahu bagaimana mencapainya?
linux
file-transfer
cp
AlbertEngelB
sumber
sumber
Jawaban:
Anda dapat menggunakan rsync (juga menyalin lokal)
-r
untuk berulang ke direktori,--ignore-existing
untuk mengabaikan file yang ada di tujuan,include
danexclude
filter berarti: mencakup semua direktori, mencakup semua * js file, termasuk sisanya; diperlukan menyertakan pertama, jika tidak, pengecualian akhir juga akan mengecualikan direktori sebelum isinya dipindai.Terakhir, Anda dapat menambahkan
-P
jika Anda ingin melihat kemajuan,--list-only
jika Anda ingin melihat apa yang akan disalin tanpa benar-benar menyalin, dan-t
jika Anda ingin mempertahankan cap waktu.Ini tidak terkait, tetapi saya baru saja mempelajari perintah rsync, ketika saya memindahkan 15 tahun dokumen dari satu partisi ke partisi lain. Merasa yakin bahwa file-file saya ada di sana, saya kemudian menghapus partisi lama dan menaruh beberapa barang lain di sana; Saya kemudian menyadari bahwa saya kehilangan semua cap waktu, dan menemukan bendera -t. Hanya ingin berbagi kesusahan saya: '(
sumber
rsync
rupanya adalah bomnya.Ini juga dapat dicapai menggunakan cp. Lihat disini:
xxx = sumber
yyy = tujuan
v = verbose
n = tidak ada clobber (tidak ada overwrite)
p = pertahankan izin
r = rekursif
sumber
Melihat halaman manual sepertinya Anda menginginkan
-n
opsi.sumber
Distro saya tidak memiliki clobber yang tersedia, jadi:
xxx = sumber
yyy = tujuan
v = verbose
i = interaktif (diminta untuk menimpa) | itulah sebabnya perintah diawali dengan "echo n |"
p = pertahankan izin
r = rekursif
sumber