Opsi Perintah cp dan Menimpa Sekaligus Tanpa Konfirmasi | 2 Cara: yes dan Backslash
cp akan menanyakan apakah setiap file perlu ditimpa saat menyalin banyak file, sehingga pekerjaan terhenti. Perintah cp adalah singkatan dari Copy dan menyalin file serta direktori; artikel ini merangkum cara pakai dasar, opsi, dan 2 cara menimpa sekaligus tanpa konfirmasi.
Perintah cp menimpa file bernama sama di tujuan tanpa bertanya. Untuk mencegahnya, [alias cp='cp -i'] diatur sehingga konfirmasi ditanyakan sebelum menimpa.
✅ Cara Penggunaan Dasar
Penggunaan dasarnya adalah sebagai berikut.
cp -[opsi] <sumber: File atau direktori> <tujuan: jalur atau File atau direktori (jalur)>Tulis dulu yang akan disalin, lalu tujuan atau nama baru di belakangnya.

# Salin file > file
cp file1 file2
# Salin file > ke dalam direktori
cp file1 dir1/
# Salin 2 file > ke dalam direktori
cp file1 file2 dir1/ testuser]# cp dir1/ dir2/
cp: -r not specified; omitting directory 'dir1/'
Menyalin direktori memerlukan opsi -r atau -R, atau opsi -a.
- -r/-R : menyalin direktori dan isinya secara rekursif
- -a : menyalin rekursif sambil mempertahankan atribut (sudah termasuk -r)
✅ 2 cara menimpa sekaligus dengan perintah cp
Saat perintah cp dijalankan, muncul pertanyaan [overwrite] karena alias [cp -i] diatur untuk cp.
cp -a
cp: overwrite 'messages_ori'? y
~]# alias cp
alias cp='cp -i'Jika hanya satu atau dua file tidak masalah, tetapi saat menyalin banyak file Anda harus menjawab untuk setiap file sehingga merepotkan.
Dalam kasus ini, Anda bisa menimpa tanpa konfirmasi dengan dua cara di bawah.
yes | cp -ar /home/ ./Cara pertama adalah menambahkan [yes |] di depan, sehingga y otomatis dimasukkan untuk setiap konfirmasi dan file langsung disalin. Cara kedua adalah menambahkan backslash [\] di depan perintah, sehingga perintah cp asli dijalankan tanpa melalui alias.
\cp -ar /home/ ./✅ Opsi perintah cp & simulator
| Opsi | Penjelasan | |
|---|---|---|
| -a | --archiveMenyalin sambil mempertahankan semua izin, pemilik, grup, informasi waktu, dan lainnya dari file asli[mempertahankan semua izin, pemilik, grup, informasi waktu, dan lainnya] + [-d : menyalin tautan simbolik itu sendiri] + [-R : menyalin direktori secara rekursif] | |
| -b | Jika file tujuan sudah ada, file lama dicadangkan lalu disalin | |
| -d | Jika sumbernya tautan simbolik, tautan itu sendiri yang disalin | |
| -f | Jika file tujuan ada, file itu dihapus paksa lalu disalin | |
| -i | --interactiveMeminta konfirmasi pengguna sebelum menimpaalias cp='cp -i' | |
| -l(huruf kecil) | Menyalin dalam bentuk tautan keras | |
| -P | Menyalin tautan simbolik apa adanya tanpa mengikutinya | |
| -p | Mempertahankan pemilik, grup, izin, dan informasi waktu file asli | |
| -r, -R | Menyalin direktori secara rekursif (termasuk subdirektori dan file)Opsi -r bukan standar POSIX dan bisa bermasalah saat menangani tautan simbolik atau file perangkat. | |
| -s | Menyalin dalam bentuk tautan simbolik (sumber harus ditulis dengan jalur absolut) | |
| -u | Tidak menimpa jika file tujuan lebih baru atau sama | |
| -v | Menampilkan proses penyalinan (verbose)Opsi yang menampilkan pesan bahwa penyalinan selesai | |
| -x | Tidak menyalin jika sistem file sumber dan tujuan berbeda. |
🔲 Opsi -a: mempertahankan atribut file asli & menyalin subdirektori(&file)
Untuk menyalin sampai subdirektori sambil mempertahankan atribut file asli, opsi [-a] saja sudah cukup. Namun ada skrip atau alat otomatisasi yang secara eksplisit meminta [-r], sehingga opsi [-r] atau [-R] kadang ditambahkan juga.
testuser]# cp -a dir1 dir2
testuser]# ll dir*
dir1:
total 0
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:15 file2
dir2:
total 0
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:15 file2
testuser]# [-d : menyalin tautan simbolik itu sendiri]+[-R : menyalin direktori secara rekursif]+[--preserve=all]
| Item yang termasuk dalam --preserve=all | Penjelasan |
|---|---|
| mode | Izin file (rwx, dll.) |
| ownership | Pemilik (user) dan grup (group) |
| timestamps | Stempel waktu seperti waktu modifikasi terakhir |
| links | Jumlah tautan keras (mempertahankan inode yang dipakai bersama) |
| context | Konteks keamanan SELinux |
| xattr | Atribut tambahan (metadata yang disimpan sebagai tambahan pada file) |
| all | Bentuk singkat yang mencakup semua item di atas sekaligus |
🔲 Opsi -u: hanya menyalin file yang baru dan berubah
- Hanya menyalin jika di jalur tujuan tidak ada file bernama sama, atau jika sumbernya lebih baru
- Sering dipakai untuk backup atau sinkronisasi
testuser]# cp -u file1 file2
testuser]# ll file*
-rw-r--r-- 1 root root 0 Jun 8 14:11 file1
-rw-r--r-- 1 root root 0 Jun 8 14:30 file2
ℹ️ Pemberitahuan Afiliasi
Konten di situs ini berisi tautan afiliasi. Jika pengunjung membeli produk atau layanan melalui tautan tersebut, situs ini menerima komisi dari penjual. Harga yang dibayar pembeli(turun saat ada diskon promo ↓), tidak naik karena hal ini. Harga, diskon, dan informasi stok yang ditampilkan berlaku pada saat penulisan dan bisa berbeda dengan kondisi sebenarnya, jadi pastikan kembali di situs penjual sebelum membeli. Pemilihan dan penilaian produk dibuat berdasarkan standar kami sendiri, dan ada tidaknya komisi tidak memengaruhi urutan maupun isi penilaian.