Bagaimana saya bisa Menyalin File dalam Folder ke Folder Lain di Terminal Linux

How Can I Copy Files Folder Into Another Folder Linux Terminal



Saat Anda perlu menyalin konten direktori ke direktori lain, dalam kasus Linux, ada banyak alat yang dapat Anda gunakan. Yang mana yang harus digunakan? Itu tergantung pada situasi dan preferensi pribadi. Dalam artikel ini, kita akan melihat cara Anda dapat menyalin konten file dari satu folder ke folder lain di terminal. Ini akan menampilkan beberapa pilihan populer untuk situasi yang berbeda.

Penyalinan file di terminal

Menyalin konten dari satu direktori ke direktori lain adalah tugas yang sangat sederhana. Namun, Anda memiliki banyak pilihan untuk melakukannya. Linux diberkati dengan banyak alat untuk memanipulasi file dan direktori melalui berbagai tindakan.







Semua langkah didemonstrasikan di Ubuntu 18.04.1. Pada awalnya, mari buat beberapa file dummy untuk digunakan.



$mkdir -vdir_A



Sekarang, mari kita buat file dummy menggunakan sentuhan.





$menyentuhcontoh{1..10}

Mari buat folder lain di dalam dir_A dengan beberapa file dummy.



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

Sekarang, seluruh struktur direktori dir_A terlihat seperti ini.

$pohondir_A

Perintah Cp

NS cp perintah, sejauh ini, adalah alat yang paling umum untuk menyalin file. Ini adalah alat yang datang secara default dengan sistem Linux apa pun. Menyalin file dan direktori adalah satu-satunya tujuan cp. Ini mendukung berbagai fitur.

Ini adalah struktur dasar dari cp memerintah.

$cp <pilihan> <sumber> <tujuan>

Sebagai contoh, mari kita membuat salinan dari boneka1 file dengan nama dummy1_copy .

$cpdummy1 dummy1_copy

Sekarang, mari kita coba menyalin banyak file sekaligus. Untuk operasi seperti itu, cp membutuhkan tujuan berupa direktori. Di sini, saya akan menggunakan ekspresi wildcard untuk mengambil semua contoh file dan memasukkannya ke dalam ~/Unduhan direktori.

$cpcontoh*~/Unduhan

Bagaimana dengan menyalin direktori?

$cp -vrdir_A dir_A_copy

Di sini, kami menggunakan dua flag yang berbeda. Mari kita perincian singkatnya.

  • -r: Singkatan dari a rekursif salin (termasuk file tersembunyi apa pun). Bendera yang harus dimiliki jika penyalinan melibatkan seluruh direktori atau lebih.
  • -v: Singkatan dari bertele-tele . Alat cp akan menampilkan setiap tindakan yang dilakukannya.

Ingin mengikuti tautan simbolik? Tambahkan bendera -L.

$cp -Lvr <sumber> <tujuan>

Katakanlah direktori tujuan sudah memiliki file dengan nama yang sama. Jika Anda ingin menghindari penimpaan, gunakan tanda -n. Ini akan memastikan bahwa jika terjadi konflik, cp tidak akan menimpa file.

$cp -nv <sumber> <tujuan>

Jika Anda melakukan tindakan salin/tempel sensitif, lebih baik untuk memiliki kontrol terbaik atas apa yang terjadi, bukan? Dalam kasus seperti itu, gunakan flag -i. Itu singkatan dari mode interaktif di mana cp akan meminta konfirmasi setiap kali konflik muncul.

$cp -Saya <sumber> <tujuan>

Jika Anda lebih tertarik, halaman manual selalu menjadi salah satu dokumentasi terbaik. Pelajari lebih lanjut tentang cp.

$pria cp

perintah mv

Alat mv mirip dengan alat cp. Namun, alih-alih menyalin, mv memindahkan file dan direktori. Dibandingkan dengan cp, ini lebih sederhana.

Struktur perintah mv mirip dengan cp.

$mv <pilihan> <sumber> <tujuan>

Untuk memindahkan isi dari dir_A ke dir_A_copy , jalankan perintah berikut.

$mv -vdir_A/dir_A_copy

Di sini, bendera -v adalah untuk bertele-tele mode. Jika Anda hanya ingin memindahkan konten dir_A, gunakan yang berikut sebagai gantinya. Dalam hal ini, direktori target harus ada terlebih dahulu.

$mv -vdir_A/ *dir_A_copy

Alat mv tidak memiliki banyak hal untuk dikerjakan. Untuk semua opsi yang tersedia, lihat halaman manual.

$pria mv

Perintah Rsync

Ini adalah salah satu alat yang paling populer dan kuat untuk menyalin file, sebagian besar digunakan untuk cadangan. Ini memegang kemampuan untuk menyalin file melalui koneksi jarak jauh. Tidak seperti cp dan mv, ia juga dilengkapi dengan banyak opsi penyalinan file tingkat lanjut yang menawarkan penyesuaian terbaik dari perilakunya.

Rsync sebagian besar terkenal dengan algoritme transfer delta yang secara dramatis mengurangi jumlah data yang perlu dipertukarkan. Dalam kasus sinkronisasi jarak jauh, ini menghemat banyak bandwidth.

Rsync umumnya tidak diinstal sebelumnya di distro Linux mana pun. Namun, karena popularitasnya, sekarang tersedia di semua distro Linux utama. Menggunakan Pkgs.org untuk mengetahui paket rsync untuk distro Anda. Dengan asumsi Anda telah menginstal rsync, mari kita mulai.

Pertama, struktur perintah dasar rsync. Ini sangat mirip dengan cp.

$rsync<pilihan> <sumber> <tujuan>

Sebelum memulai, berikut adalah beberapa argumen rsync yang populer.

  • -v : Mode verbose, menampilkan tindakan apa pun yang dilakukan di layar konsol.
  • -vv : Mode verbose dengan detail lebih lanjut
  • -R : Mode rekursif, harus ada jika menyalin direktori
  • -Dengan : Kompres data
  • -ke : Arsip data
  • -n : Lari kering, harus dijalankan dalam kombinasi dengan mode verbose. Cukup keluarkan tindakan jika perintah dijalankan secara nyata
  • -menghapus : Hapus file dan direktori pada direktori tujuan jika direktori sumber tidak lagi memuatnya
  • -tanpa-seluruh-file : Memaksa rsync untuk menggunakan algoritme transmisi delta, apa pun yang terjadi. Berguna dalam skenario di mana Anda harus memastikan jumlah penulisan data paling sedikit.
  • –hapus-sumber-file : Hapus file sumber setelah menyalin.

Mari kita lihat mereka beraksi. Pertama, salinan direktori. Jalankan perintah berikut.

$rsync-vrdir_A/dir_A_copy

Untuk detail output lebih lanjut, mari gunakan flag -vv.

$rsync-vv -Rdir_A/dir_A_copy

Sekarang, mari kita lihat bagian keren dari rsync. Kami membahas bagaimana rsync dengan cerdas hanya menyalin file yang dimodifikasi, menghemat bandwidth dan penulisan disk. Saatnya untuk memeriksanya dalam tindakan. Dalam contoh ini, tindakan akan dilakukan dalam dir_A direktori.

$rsync-vv --no-whole-filecontoh*dir_B/

Meskipun transmisi delta diaktifkan, rsync mungkin tidak menerapkannya saat Anda melakukan transfer data lokal.

Sekarang, mari kita periksa fitur dry run. Sebelum menjalankan perintah rsync secara nyata, selalu penting bagi Anda untuk mengujinya terlebih dahulu. Di sinilah proses dry run masuk. Rsync akan menampilkan apa yang akan terjadi jika perintah benar-benar dijalankan.

$rsync-anvrdir_A/dir_A_copy

Rsync juga dapat bekerja dengan direktori jarak jauh, tidak masalah. Yang dibutuhkan hanyalah koneksi SSH yang tepat dengan kunci SSH yang dikonfigurasi.

$rsinkronisasi<pilihan> <local_dir>
<nama pengguna> @<remote_host>:<tujuan_dir>

Ingin melakukan operasi pemindahan? Untuk menempatkan itu dalam perspektif rsync, rsync akan menyalin konten direktori sumber dan kemudian, menghapus konten sumber.

$rsync-v --remove-source-files <sumber> <tujuan>

Lihat hasil operasinya.

$pohondir_A

$pohondir_A_copy

Pikiran terakhir

Cp dan rsync adalah alat paling umum yang dapat Anda gunakan untuk menyalin file dalam folder di terminal Linux. Keduanya juga sangat bagus untuk scripting. Pastikan untuk menguji fungsi sebelum implementasi.

Menikmati!