Salin direktori di Unix


78

Bagaimana saya bisa menyalin struktur direktori, dir1, ke dir2, (dengan semua subdirektori) di Unix menggunakan jendela terminal?


2
"cp -r / dir1 / dir2" Apakah ini benar ??
Dinesh Kumar

Ya itu benar. Anda mungkin ingin menandai salah satu jawaban sebagai solusi Anda.
qroberts

Jawaban:


115
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 -fbendera 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.


11
Saya tidak setuju bahwa Anda harus menggunakan fbendera. -f if an existing destination file cannot be opened, remove it and try again
Nifle

Secara pribadi saya selalu menggunakan flag -f. Bukan latihan yang bagus jadi mungkin Anda benar.
qroberts

Jika Anda tahu apa fungsinya, dan Anda tahu apa yang Anda lakukan tidak apa-apa. Tetapi dalam kasus ini dengan pengguna yang tidak berpengalaman mungkin tidak cocok.
Nifle

@Nifle Ya, saya mengerti apa yang Anda katakan. Hanya jika dia memaksanya, peluangnya untuk bekerja lebih baik daripada jika tidak. Itu semua tergantung pada apa yang Anda lakukan dan Anda memahami apa yang dilakukannya.
qroberts

Jika Anda memberi catatan pada jawaban Anda tentang -ftanda yang berguna jika Anda menyalin <source> di atas <dest> (seperti dalam menimpa hal-hal di <dest>), saya akan mengambilnya sendiri dan menghapus jawaban saya)
Nifle

11

Sementara cp -Rjawabannya 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.


9

saya suka

cp -axv source dest

Rsync adalah alat yang bagus untuk ini

rsync -va source dest
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.