Singkat: Dalam panduan yang mudah diikuti ini, kita akan membahas beberapa contoh praktis dari perintah cp. Setelah mengikuti panduan ini, pengguna akan dapat menyalin file dan direktori dengan mudah di Linux menggunakan antarmuka baris perintah.
Sebagai pengguna Linux, kami berinteraksi dengan file dan direktori dari waktu ke waktu. Salah satu operasi umum yang dilakukan pengguna adalah menyalin file dan direktori. Tentu saja, kita dapat menggunakan pengelola file grafis untuk melakukan operasi penyalinan. Namun, sebagian besar pengguna Linux lebih suka menggunakan cp perintah karena kesederhanaan dan fungsionalitasnya yang kaya.
Dalam panduan ramah pemula ini, kita akan belajar tentang cp memerintah. Seperti namanya, the perintah cp digunakan untuk menyalin file dan direktori di jalur tertentu.
Sepanjang panduan ini, kita akan memahami penggunaan perintah cp menggunakan contoh-contoh praktis yang dapat digunakan sehari-hari.
Jadi mari kita mulai.
Daftar isi
Sintaks dari cp perintah identik dengan perintah Linux lainnya. Pada tingkat tinggi, itu dibagi menjadi dua bagian - pilihan Dan argumen:
$cp [PILIHAN]$cp [PILIHAN] ...
Dalam sintaks di atas, tanda kurung siku ([])
mewakili argumen opsional sedangkan tanda kurung sudut (<>)
mewakili argumen wajib.
Salah satu penggunaan dasar dari cp perintah untuk menyalin file ke direktori saat ini. Sebagian besar waktu pengguna melakukan operasi ini untuk mengambil cadangan dari konfigurasi penting.
Misalnya, kami sering membuat salinan cadangan /etc/ssh/sshd_config file sebelum memperbarui konfigurasi SSH.
Untuk memahami penggunaannya, mari buat file sederhana:
$sentuh file-1.txt.
Selanjutnya, buat salinan file menggunakan perintah berikut:
$ cp file-1.txt file-2.txt.
Pada contoh sebelumnya, kita menggunakan ls perintah untuk memverifikasi apakah operasi penyalinan file berhasil atau tidak. Namun, tidak masuk akal untuk menggunakan satu perintah lagi hanya untuk memverifikasi hasil dari perintah sebelumnya.
Dalam kasus seperti itu, kita dapat mengaktifkan mode verbose menggunakan -v
opsi, yang menyediakan diagnostik untuk setiap file yang diproses.
Mari kita buat salinan dari file-1.txt file menggunakan perintah berikut:
$ cp -v file-1.txt file-3.txt.
Pada output di atas, tanda panah mewakili file yang sedang disalin. Argumen sisi kiri adalah file sumber sedangkan argumen sisi kanan adalah file tujuan.
Sejauh ini kami bekerja dengan satu file dan direktori kerja saat ini saja. Namun, dalam lingkungan produksi nyata, kita harus bekerja dengan a sejumlah besar file. Salah satu kasus penggunaan umum di lingkungan seperti itu adalah menyalin banyak file ke dalam satu direktori.
Jelas, kami dapat menjalankan perintah cp beberapa kali untuk mencapainya, tetapi itu bukan cara yang paling efektif. Untuk melakukan operasi seperti itu secara efektif, kita dapat menggunakan sintaks alternatif dari perintah cp.
Jadi, pertama, membuat direktori baru dengan nama dir-1:
$ mkdir dir-1.
Sekarang, mari salin ketiga file ke dalam dir-1 direktori menggunakan perintah tunggal:
$ cp -v file-1.txt file-2.txt file-3.txt dir-1.
Output di atas menunjukkan bahwa semua file telah disalin ke dir-1 direktori. Juga, penting untuk dicatat bahwa, untuk menggunakan sintaks alternatif ini, direktori harus sudah ada dan harus menjadi argumen terakhir dari perintah.
Secara default, cp perintah menggantikan file tujuan, yang artinya akan menimpa file jika ada di tujuan dengan nama yang sama. Namun, kami dapat menonaktifkan perilaku default ini menggunakan -N
pilihan.
Untuk memahami ini, mari kita coba menimpa file yang ada:
$ cp -n -v berkas-1.txt berkas-2.txt.
Dalam contoh ini, kami telah menggunakan -v
pilihan untuk menggambarkan bahwa file-2.txt file belum ditimpa.
Pada contoh sebelumnya, kita melihat cara menghindari penimpaan file tujuan. Namun, terkadang kami ingin menimpa tujuan file dengan cara yang lebih aman.
Dalam kasus seperti itu, kita dapat menggunakan the -Saya
opsi perintah untuk membuat operasi penyalinan menjadi interaktif. Opsi ini menampilkan pesan peringatan dan menunggu konfirmasi pengguna sebelum menimpa file.
Untuk mengilustrasikannya, mari kita coba menimpa file yang ada:
$ cp -i file-1.txt file-2.txt cp: timpa 'file-2.txt'?
Seperti yang bisa kita lihat, perintah sedang menunggu konfirmasi. Sama seperti perintah Linux lainnya, kita bisa menggunakan 'y'
untuk melanjutkan atau 'N'
untuk membatalkan operasi.
Perilaku non-interaktif default ini dari cp perintah tidak terlalu aman. Ada kemungkinan pengguna mungkin menimpa konfigurasi penting secara tidak sengaja. Oleh karena itu beberapa distribusi Linux memberlakukan perilaku interaktif secara default menggunakan perintah alias:
$ alias cp='cp -i'
Pada contoh sebelumnya, kita melihat cara menggunakan mode interaktif. Namun, terkadang, pengguna mungkin menimpa file yang lebih baru secara tidak sengaja.
Untuk menghindari kasus rawan kesalahan seperti itu, kita dapat menggunakan -u
opsi, yang mencoba menyalin operasi hanya jika sumbernya lebih baru dari tujuan atau jika file tidak ada di tujuan.
Pertama, perbarui stempel waktu file sumber:
$ touch -t 10101010 file-1.txt. $ ls -l berkas-1.txt.
Pada contoh di atas, kita telah menggunakan the -T
pilihan dari sentuh perintah untuk mengatur stempel waktu file 10-Okt-2010.
Selanjutnya, mari perbarui stempel waktu file tujuan ke waktu saat ini:
$sentuh file-2.txt.
Sekarang, mari kita coba melakukan operasi penyalinan menggunakan -u
pilihan:
$ cp -u -v berkas-1.txt berkas-2.txt.
Di sini, kita dapat melihat bahwa operasi penyalinan belum dicoba karena file tujuan lebih baru daripada sumbernya.
Terakhir, mari tukar argumen sumber dan tujuan dan lakukan operasi penyalinan:
$ cp -u -v berkas-2.txt berkas-1.txt.
Pada output di atas, kita dapat mengamati bahwa operasi penyalinan berhasil karena file sumber lebih baru daripada file tujuan.
Kami dapat menginstruksikan cp perintah untuk mengambil cadangan file tujuan sebelum menimpanya. Untuk mencapai ini kita dapat menggunakan --cadangan
opsi, yang melakukan pencadangan otomatis.
$ cp --backup=bernomor -v file-1.txt file-2.txt.
Dalam contoh ini, kami telah menggunakan kebijakan pencadangan bernomor. Kebijakan ini menggunakan angka inkremental dalam nama file cadangan.
Untuk memahami ini, mari jalankan perintah yang sama beberapa kali dan amati hasilnya:
$ cp --backup=bernomor -v file-1.txt file-2.txt. $ cp --backup=bernomor -v file-1.txt file-2.txt. $ cp --backup=bernomor -v file-1.txt file-2.txt.
Dalam beberapa contoh sebelumnya, kita melihat cara menimpa file dengan cara yang lebih aman. Namun, dalam beberapa kasus yang jarang terjadi, persyaratannya adalah menimpa file. Namun, tidak ada jaminan bahwa operasi akan berhasil setiap saat.
Misalnya, operasi penyalinan akan gagal jika file tujuan tidak memiliki izin menulis. Mari kita ilustrasikan ini dengan sebuah contoh.
Pertama, ubah izin file tujuan:
$ chmod 444 file-2.txt. $ ls -l berkas-2.txt.
Sekarang, mari kita coba menimpa file-2.txt mengajukan:
$ cp file-1.txt file-2.txt.
Pada output di atas, kita dapat melihat bahwa perintah gagal dengan kesalahan izin ditolak.
Untuk mengatasi keterbatasan ini, kita dapat menggunakan -F
opsi, yang menghapus file tujuan dan mencoba operasi penyalinan jika file tujuan tidak dapat dibuka.
Sekarang, mari kita gunakan -F
opsi untuk menimpa file dengan paksa:
$ cp -f -v berkas-1.txt berkas-2.txt.
Pada contoh sebelumnya, kita telah melihat cara menghapus file tujuan jika terjadi kesalahan saat mengoperasikannya. Namun, terkadang persyaratannya adalah menghapus file tujuan terlebih dahulu dan kemudian melakukan operasi penyalinan.
Untuk memenuhi kebutuhan tersebut, kita dapat menggunakan the --hapus-tujuan
pilihan.
$ cp --hapus-tujuan -v file-1.txt file-2.txt.
Pada output di atas, kita dapat melihat bahwa perintah cp pertama-tama menghapus file tujuan dan kemudian melakukan operasi penyalinan.
Kami dapat membuat tautan keras alih-alih membuat salinan baru dari file sumber. Opsi ini memainkan peran penting ketika terjadi kelangkaan ruang disk.
Jadi, mari kita gunakan -l
opsi untuk membuat tautan keras:
$ cp -l -v berkas-1.txt berkas-4.txt.
Sekarang, mari kita periksa nomor inode kedua file untuk memverifikasi tautan keras:
$ ls -i1 file-1.txt file-4.txt.
Pada output di atas, angka di kolom pertama mewakili nomor inode.
Dengan cara yang sama, kita dapat membuat tautan lunak alih-alih membuat salinan baru menggunakan -S
pilihan seperti yang ditunjukkan di bawah ini:
$ cp -s -v berkas-1.txt berkas-5.txt.
Sekarang, mari kita verifikasi bahwa tautan simbolik telah dibuat dengan benar:
$ ls -l berkas-5.txt.
Pada output di atas, kolom terakhir mewakili relasi tautan simbolik.
Ada berbagai atribut yang terkait dengan file tersebut, seperti waktu akses, waktu modifikasi, izin, dll. Secara default, atribut ini tidak dipertahankan saat menyalin file. Untuk mengganti perilaku default ini, kita dapat menggunakan -P
pilihan.
Untuk memahami ini, pertama-tama, perbarui stempel waktu dari file-1.txt:
$ touch -t 10101010 file-1.txt.
Sekarang, mari buat salinan file ini dengan mempertahankan semua atributnya:
$ cp -p -v berkas-1.txt berkas-6.txt.
Terakhir, verifikasi stempel waktu file file-6.txt mengajukan:
$ ls -l berkas-6.txt.
Sejauh ini kami melihat cara menyalin satu file. Namun, seringkali kita harus menyalin semua file dan sub-direktori dari direktori tertentu.
Dalam kasus seperti itu, kita dapat menggunakan mode rekursif baik menggunakan -R
atau -R
pilihan.
Jadi, mari buat sebuah direktori dan tambahkan beberapa file dan sub-direktori di bawahnya:
$ mkdir -p dir-1/dir-2. $ sentuh dir-1/file-1.txt dir-1/dir-2/file-2.txt.
Selanjutnya, pastikan struktur direktori telah dibuat dengan benar:
$ pohon dir-1.
Sekarang, mari salin direktori dir-1 secara rekursif menggunakan perintah berikut:
$ cp -r -v dir-1 dir-3.
Terakhir, verifikasi bahwa semua file dan subdirektori telah berhasil disalin:
$ pohon dir-3.
Mirip dengan file, kita dapat menyalin banyak direktori secara rekursif menggunakan satu perintah. Namun, untuk mencapai ini, direktori tujuan harus sudah ada dan harus menjadi argumen terakhir dalam perintah. Mari kita pahami ini dengan sebuah contoh.
Pertama, buat direktori direktori baru:
$ mkdir dir-4.
Sekarang, mari kita salin dir-1 Dan dir-3 direktori ke dalam dir-4 direktori menggunakan perintah di bawah ini:
$ cp -r -v dir-1 dir-3 dir-4.
Dengan cara yang sama, kita dapat menggunakan the -T
pilihan perintah untuk mencapai hasil yang sama. Opsi ini memungkinkan kita menentukan direktori tujuan. Jadi kita bisa menggunakannya sebagai argumen pertama juga:
$ cp -t dir-4 -r -v dir-1 dir-3.
Pada artikel ini, kami membahas cara menyalin file dan direktori menggunakan perintah cp. Pemula dapat merujuk pada contoh-contoh ini dalam kehidupan sehari-hari saat bekerja dengan sistem Linux.
Anda mungkin juga menyukai:
Apakah Anda mengetahui contoh terbaik lainnya dari perintah cp di Linux? Beri tahu kami pandangan Anda di komentar di bawah.