Bagaimana saya boleh menyalin fail dalam folder ke folder lain di Terminal Linux

How Can I Copy Files Folder Into Another Folder Linux Terminal



Apabila anda memerlukan menyalin kandungan direktori ke direktori lain, dalam hal Linux, terdapat banyak alat yang anda miliki. Yang mana satu untuk digunakan? Ia bergantung pada keadaan dan pilihan peribadi. Dalam artikel ini, kita akan melihat cara anda menyalin kandungan fail dari satu folder ke folder lain di terminal. Ini akan menampilkan beberapa pilihan popular untuk situasi yang berbeza.

Penyalinan fail di terminal

Menyalin kandungan satu direktori ke direktori lain adalah tugas yang sangat mudah. Walau bagaimanapun, anda mempunyai banyak pilihan untuk melakukannya. Linux dikurniakan banyak alat untuk memanipulasi fail dan direktori melalui pelbagai tindakan.







Semua langkah ditunjukkan di Ubuntu 18.04.1. Pada mulanya, mari buat sebilangan fail palsu untuk dikendalikan.



$mkdir -vdir_A



Sekarang, mari buat fail palsu menggunakan sentuhan.





$sentuhandummy{1..10}

Mari buat folder lain dalam dir_A dengan segelintir fail palsu.



$mkdir -vdir_B
$sentuhandummy{1..10}

Sekarang, keseluruhan struktur direktori dir_A kelihatan seperti ini.

$pokokdir_A

Perintah Cp

The cp perintah, sejauh ini, alat yang paling biasa untuk menyalin fail. Ini adalah alat yang datang secara lalai dengan sistem Linux apa pun. Menyalin fail dan direktori adalah tujuan tunggal cp. Ia menyokong pelbagai ciri.

Ini adalah struktur asas cp arahan.

$cp <pilihan> <sumber> <destinasi>

Sebagai contoh, mari kita buat salinan dummy1 fail dengan nama dummy1_copy .

$cpdummy1 dummy1_copy

Sekarang, mari kita cuba menyalin banyak fail sekaligus. Untuk operasi sedemikian, cp memerlukan destinasi menjadi direktori. Di sini, saya akan menggunakan ungkapan wildcard untuk merebut semua dummy fail dan masukkan ke dalam ~ / Muat turun direktori.

$cpdummy*~/Muat turun

Bagaimana dengan menyalin direktori?

$cp -vrdir_A dir_A_copy

Di sini, kami menggunakan dua bendera yang berbeza. Mari kita pecahkan cepat.

  • -r: bermaksud a rekursif salin (termasuk fail tersembunyi). Bendera mesti ada jika menyalin melibatkan keseluruhan direktori atau lebih.
  • -v: bermaksud kata kerja . Alat cp akan mengeluarkan setiap tindakan yang dilakukannya.

Ingin mengikuti pautan simbolik? Tambahkan bendera -L.

$cp -Lvr <sumber> <destinasi>

Katakan direktori tujuan sudah mempunyai fail dengan nama yang sama. Sekiranya anda ingin mengelakkan menimpa, gunakan bendera -n. Ini akan memastikan bahawa sekiranya berlaku konflik, cp tidak akan menimpa fail.

$cp -nv <sumber> <destinasi>

Sekiranya anda melakukan tindakan salin / tampal yang sensitif, lebih baik anda mempunyai kawalan terbaik terhadap apa yang berlaku, bukan? Dalam kes sedemikian, gunakan bendera -i. Ini bermaksud mod interaktif di mana cp akan meminta pengesahan setiap kali konflik timbul.

$cp -i <sumber> <destinasi>

Sekiranya anda lebih berminat, halaman manual selalu menjadi salah satu dokumentasi terbaik. Ketahui lebih lanjut mengenai cp.

$lelaki cp

arahan mv

Alat mv serupa dengan alat cp. Namun, bukannya menyalin, mv memindahkan fail dan direktori. Berbanding dengan cp, ia lebih mudah.

Struktur arahan mv serupa dengan cp.

$mv <pilihan> <sumber> <destinasi>

Untuk memindahkan kandungan dir_A ke dir_A_copy , jalankan arahan berikut.

$mv -vdir_A/dir_A_copy

Di sini, bendera -v adalah untuk kata kerja mod. Sekiranya anda ingin memindahkan hanya kandungan dir_A, gunakan yang berikut sebagai gantinya. Dalam kes ini, direktori sasaran mesti ada terlebih dahulu.

$mv -vdir_A/ *dir_A_copy

Alat mv tidak banyak berfungsi. Untuk semua pilihan yang ada, lihat halaman manual.

$lelaki mv

Perintah Rsync

Ini adalah salah satu alat yang paling popular dan kuat untuk penyalinan fail, yang kebanyakannya digunakan untuk sandaran. Ini mempunyai kemampuan untuk menyalin fail melalui sambungan jauh. Tidak seperti cp dan mv, ia juga dilengkapi dengan banyak pilihan penyalinan fail lanjutan yang menawarkan penyesuaian tingkah lakunya sepenuhnya.

Rsync kebanyakannya terkenal dengan algoritma pemindahan delta yang secara dramatik mengurangkan jumlah data yang perlu ditukar. Sekiranya penyelarasan jarak jauh, ini menjimatkan banyak lebar jalur.

Rsync secara amnya tidak dipasang terlebih dahulu di mana-mana distro Linux. Namun, kerana popularitinya, kini tersedia di semua distro Linux utama. Gunakan Pkgs.org untuk mengetahui pakej rsync untuk distro anda. Dengan andaian bahawa anda telah memasang rsync, mari kita mulakan.

Pertama, struktur arahan asas rsync. Ia serupa dengan cp.

$rsync<pilihan> <sumber> <destinasi>

Sebelum memulakan, berikut adalah beberapa argumen rsync yang popular.

  • -v : Mod Verbose, mengeluarkan apa sahaja tindakan yang dilakukan pada skrin konsol.
  • -vv : Mod perbincangan dengan lebih terperinci
  • -r : Mod rekursif, mesti ada jika menyalin direktori
  • -Dengan : Memampatkan data
  • -untuk : Data arkib
  • -n : Lari kering, harus dijalankan dalam kombinasi dengan mod verbose. Cukup mengeluarkan tindakan jika perintah itu dijalankan secara nyata
  • - padamkan : Hapus fail dan direktori di direktori tujuan jika direktori sumber tidak lagi mengandungnya
  • -tidak-keseluruhan-fail : Memaksa rsync menggunakan algoritma transmisi delta, tidak kira apa. Berguna dalam senario di mana anda mesti memastikan jumlah penulisan data paling sedikit.
  • -Hapus sumber-fail : Padamkan fail sumber setelah menyalin.

Mari kita lihat mereka dalam tindakan. Pertama, salinan direktori. Jalankan arahan berikut.

$rsync-vrdir_A/dir_A_copy

Untuk output terperinci lebih lanjut, mari kita gunakan bendera -vv.

$rsync-vv -rdir_A/dir_A_copy

Sekarang, mari lihat bahagian rsync yang menarik. Kami membincangkan bagaimana rsync dengan bijak menyalin hanya fail yang diubahsuai, menjimatkan lebar jalur dan menulis cakera. Sudah tiba masanya untuk melihatnya dalam tindakan. Dalam contoh ini, tindakan akan dilakukan dalam dir_A direktori.

$rsync-vv - tidak ada keseluruhan faildummy*dir_B/

Meskipun transmisi delta diaktifkan, rsync mungkin tidak menerapkannya ketika Anda melakukan pemindahan data tempatan.

Sekarang, mari kita lihat ciri jalan kering. Sebelum menjalankan sebarang arahan rsync secara nyata, selalu penting anda mengujinya terlebih dahulu. Di sinilah jalan kering masuk. Rsync akan mengeluarkan apa yang akan berlaku sekiranya perintah itu benar-benar dijalankan.

$rsync-anvrdir_A/dir_A_copy

Rsync juga boleh berfungsi dengan direktori jauh, tidak ada masalah. Yang diperlukannya ialah sambungan SSH yang betul dengan kunci SSH yang dikonfigurasikan.

$ rsync<pilihan> <tempatan_dir>
<nama pengguna> @<remote_host>:<destinasi_dir>

Ingin melakukan operasi bergerak? Untuk meletakkannya dalam perspektif rsync, rsync akan menyalin kandungan direktori sumber dan kemudian, hapus kandungan sumber.

$rsync-v - hapus-sumber-fail <sumber> <destinasi>

Lihat hasil operasi.

$pokokdir_A

$pokokdir_A_copy

Pemikiran terakhir

Cp dan rsync adalah alat paling umum yang boleh anda gunakan untuk menyalin fail dalam folder di terminal Linux. Kedua-duanya juga sangat bagus untuk skrip. Pastikan untuk menguji fungsi sebelum pelaksanaan.

Selamat mencuba!