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

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

Ketika Anda perlu menyalin isi 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. Pada 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 kita buat beberapa file dummy untuk dikerjakan.

$ mkdir -v dir_A

Sekarang, mari kita buat file dummy menggunakan sentuhan.

$ touch dummy{1..10}

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

$ mkdir -v dir_B
$ touch dummy{1..10}

Sekarang, seluruh struktur direktori dir_A terlihat seperti ini.

$ tree dir_A

Perintah Cp

Perintah cp, 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 perintah cp.

$ cp <options> <source> <destination>

Sebagai contoh, mari kita buat copyan file dummy1 dengan nama dummy1_copy.

$ cp dummy1 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 file dummy dan memasukkannya ke dalam direktori ~/Downloads.

$ cp dummy* ~/Downloads

Bagaimana dengan menyalin direktori?

$ cp -vr dir_A dir_A_copy

Di sini, kami menggunakan dua flag yang berbeda. Mari kita uraikan mereka dengan cepat.

  • -r: Singkatan dari copyan rekursif (termasuk file tersembunyi apa pun). Flag yang harus dimiliki jika penyalinan melibatkan seluruh direktori atau lebih.
  • -v: Singkatan dari verbose. Alat cp akan menampilkan setiap tindakan yang dilakukan.

Ingin mengikuti tautan simbolik? Tambahkan bendera “-L”.

$ cp -Lvr <source> <destination>

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 <source> <destination>

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

$ cp -i <source> <destination>

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

$ man 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 <option> <source> <destination>

Untuk memindahkan isi dir_A ke dir_A_copy, jalankan perintah berikut.

Di sini, flag “-v” adalah untuk cara verbose. Jika Anda hanya ingin memindahkan konten dir_A, gunakan yang berikut ini. Dalam hal ini, direktori target harus ada terlebih dahulu.

$ mv -v dir_A/* dir_A_copy

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

$ man 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. Gunakan 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 <options> <source> <destination>

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
  • -z : Kompres data
  • -a : Arsip data
  • -n : Lari kering, harus dijalankan dalam kombinasi dengan cara verbose. Cukup keluarkan tindakan jika perintah dijalankan secara nyata
  • –delete : Hapus file dan direktori pada direktori tujuan jika direktori sumber tidak lagi memuatnya
  • -no-whole-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.
  • –remove-source-file : Hapus file sumber setelah menyalin.

Mari kita perik
sa mereka beraksi. Pertama, copyan direktori. Jalankan perintah berikut.

$ rsync -vr dir_A/ dir_A_copy

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

$ rsync -vv -r dir_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 direktori dir_A.

$ rsync -vv --no-whole-file dummy* 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 kering masuk. Rsync akan menampilkan apa yang akan terjadi jika perintah itu benar-benar dijalankan.

$ rsync -anvr dir_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.

$ rsync <option> <local_dir> 
<username>@<remote_host>:<destination_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 <source> <destination>

Lihat hasil operasinya.

$ tree dir_A

$ tree dir_A_copy

Kesimpulan

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!

Related Posts