Bagaimana saya bisa menyalin struktur direktori, dir1, ke dir2, (dengan semua subdirektori) di Unix menggunakan jendela terminal?
Bagaimana saya bisa menyalin struktur direktori, dir1, ke dir2, (dengan semua subdirektori) di Unix menggunakan jendela terminal?
Jawaban:
cp -rf /source/path/ /destination/path/
-r
= rekursif, menyalin semua sub-direktori
-f
= force, jika file tujuan yang ada tidak dapat dibuka, hapus dan coba lagi
Catatan Anda harus berhati-hati ketika menggunakan -f
bendera karena akan secara paksa menimpa apa pun yang Anda salin. Terima kasih @Nifle untuk saran ini.
Anda mungkin ingin menggunakan * wildcard untuk menyalin semua file di direktori jika perlu.
f
bendera. -f if an existing destination file cannot be opened, remove it and try again
-f
tanda yang berguna jika Anda menyalin <source> di atas <dest> (seperti dalam menimpa hal-hal di <dest>), saya akan mengambilnya sendiri dan menghapus jawaban saya)
Sementara cp -R
jawabannya benar (BTW kasus bendera pada BSD harus berupa modal, keduanya didukung di linux), ada mantra lama yang melibatkan tar :
$ tar cf - . | (cd DIR; tar xf - )
Kenapa kau mau melakukan itu? Karena tar memiliki pemahaman tautan yang cukup canggih baik yang keras maupun yang simbolis.
Apakah Anda ingin Anda menyalin untuk mengganti tautan simbolis yang ada dengan yang memiliki teks yang sama? Atau dengan tautan ke target yang sama (menyesuaikan jalur relatif untuk mengkompensasi)? Atau dengan salinan target bitwise?
Jika dua file dalam dokumen asli ditautkan dengan keras, apakah struktur yang baru memiliki dua salinan data atau hanya satu?
Keputusan, keputusan. Tar memiliki default yang masuk akal, tetapi memungkinkan Anda untuk lebih spesifik.
saya suka
cp -axv source dest
Rsync adalah alat yang bagus untuk ini
rsync -va source dest