Saya ingin menyalin direktori dari satu tempat ke tempat lain melalui baris perintah

127

Saya ingin menyalin direktori dari satu tempat ke folder lain.

sudo cpitu perintahnya, tapi setelah itu apa yang harus saya ketik? Tujuan atau sumbernya terlebih dahulu?

Pradeep
sumber
10
Apakah man cpmembantu?
Portablejim

Jawaban:

198

The -aflag mungkin apa yang Anda cari:

cp -a /path/from /path/to

The -abendera ternyata pada perilaku rekursif (yang juga bisa dilakukan dengan -Rbendera), dan juga akan mencoba untuk melestarikan metadata seperti kepemilikan file, hak akses, cap waktu, link, dll

Anda hanya perlu menggunakan sudojika Anda menyalin ke lokasi yang tidak dimiliki oleh pengguna saat ini, jika pengguna saat ini tidak memiliki izin baca untuk file yang sedang disalin, atau jika Anda ingin mempertahankan kepemilikan pada file yang tidak dimiliki oleh saat ini. pengguna.

James Henstridge
sumber
4
selain itu, sebagai aturan praktis, selalu seperti itu [command] [source] [destination]. Hal ini berlaku untuk mv, cp, ren.
Vineet Menon
1
@VineetMenon Anda mungkin bermaksud mv, tidak ren.
jcollado
@ jcollado: saya sudah menambahkan mv!!
Vineet Menon
@VineetMenon Ya, Anda benar, saya tidak melihat mvitu sudah ada dalam daftar. Pokoknya, maksud saya adalah, sejauh yang saya tahu, tidak ada renperintah (kecuali Anda punya alias atau sesuatu yang ditetapkan).
jcollado
1
@ jcollado: haha ​​... itu nama samaran saya untuk rename...: D
Vineet Menon
28

Jika Anda ingin menyalin direktori, silakan gunakan perintah di bawah ini:

sudo cp -R Source_Folder Destination_Folder

Perintah ini juga dapat digunakan untuk menyalin file, dengan hanya menghapus "-R" yang digunakan untuk menyalin struktur rekursif folder internal (jika ada di jalur Source_Folder yang kami sebutkan.)

Satu lagi contoh:

sudo cp -R /var/www/* /home/test_user/

Silakan memberikan komentar jika ada masalah.

Sayang
sumber
7

Untuk menyalin folder melalui terminal, Anda dapat menggunakan

cp -a /source/. /dest/

Opsi -a adalah opsi rekursif yang ditingkatkan, yang mempertahankan semua atribut file, dan juga mempertahankan symlink.

. di akhir jalur sumber adalah sintaks cp spesifik yang memungkinkan untuk menyalin semua file dan folder, termasuk yang tersembunyi.

Alternatif adalah rsync

rsync -r source/ destination
shail
sumber
2

Saya pikir cara yang lebih baik adalah dengan menggunakan gksu nautilusperintah dan Anda dapat menyalin apa pun yang Anda inginkan dengan GUI biasa seperti biasa.

Af Vtr
sumber
1
Itu mengasumsikan Anda menggunakan GUI dan bukan CLI.
Phill Healey