Dalam panduan singkat ini, kita akan membahas cara menyalin file ke beberapa direktori dari baris perintah menggunakan find
, cp
, echo
, xargs
dan tee
perintah di Linux.
Suatu hari saya ingin menyalin beberapa video ke folder yang berbeda di desktop Arch Linux saya. Seperti yang sudah Anda ketahui, kita dapat dengan mudah melakukannya dengan mengklik kanan pada file, pilih Copy
dari menu konteks dan tempel di direktori/folder tujuan.
Namun, saya ingin tahu apakah ada cara lain untuk menyalin file ke beberapa direktori dalam sekali jalan . Saya pikir itu akan membantu ketika saya ingin menyalin satu file ke beberapa direktori yang berbeda sekaligus. Saya melakukan beberapa penelusuran web dan menemukan solusi berikut.
Peringatan Penting:
Harap dicatat bahwa perintah berikut tidak akan meminta konfirmasi apa pun. Jika ada file dengan nama yang sama di direktori target, itu akan diganti secara otomatis.
Jika Anda baru mengenal Linux, saya sarankan Anda untuk menguji perintah di mesin uji apa pun sebelum mulai menggunakannya dalam produksi. Dengan cara ini Anda dapat mencegah hilangnya data yang tidak perlu.
Menyalin file ke beberapa direktori dari baris perintah di Linux
Saya memiliki file teks bernama ostechnix.txt
di direktori home saya, dan saya ingin menyalinnya ke dua direktori berbeda bernama Downloads
dan Documents
sekaligus.
Pertama, mari kita lihat cara menyalin file ke beberapa direktori berbeda menggunakan find
dan cp
perintah.
Metode 1:Menggunakan perintah find dan cp
Kita dapat menyalin satu file ke beberapa direktori sekaligus menggunakan find
dan cp
perintah.
find
adalah perintah Unix dan Linux untuk menelusuri file dalam hierarki direktori dan perintah cp digunakan untuk menyalin file dan direktori.
Untuk menyalin file bernama ostechnix.txt
ke ~/Downloads
dan ~/Documents
direktori menggunakan find
dan cp
perintah, jalankan:
$ find ~/Downloads/ ~/Documents/ -maxdepth 0 -type d -exec cp ostechnix.txt {} \;
Perintah di atas akan menyalin file ostechnix.txt di direktori saat ini ke ~/Downloads
dan ~/Documents
direktori.
Jika Anda tidak menentukan '-maxdepth 0'
opsi, ostechnix.txt
file akan disalin ke ~/Downloads
, ~/Documents
direktori dan juga ke dalam sub-direktori mereka juga. Jadi, jangan lupa untuk menentukannya.
Seperti yang saya peringatkan sebelumnya, jika sudah ada file dengan nama yang sama (yaitu ostechnix.txt
) di salah satu direktori tujuan, perintah di atas hanya akan menimpa file yang ada tanpa konfirmasi apa pun.
Jika Anda tidak ingin menimpa file yang ada, Anda dapat menggunakan -n
tandai dengan cp
perintah seperti di bawah ini:
$ find ~/Downloads/ ~/Documents/ -maxdepth 0 -type d -exec cp -n ostechnix.txt {} \;
Sekarang, itu tidak akan menggantikan file target jika sudah ada di lokasi tujuan.
Metode 2:Menggunakan perintah echo, xargs dan cp
Cara lain untuk menyalin file ke beberapa lokasi adalah dengan menggunakan echo
, xargs
dan cp
perintah.
Seperti yang sudah Anda ketahui, cp
perintah digunakan untuk menyalin file dan direktori, dan xargs
perintah digunakan untuk membangun dan mengeksekusi baris perintah dari input standar.
Untuk menyalin file ke beberapa direktori menggunakan echo
, xargs
dan cp
perintah, jalankan:
$ echo ~/Downloads ~/Documents | xargs -n 1 cp ostechnix.txt
Mari kita uraikan perintah di atas dan lihat cara kerjanya.
Umumnya, echo
perintah mencetak string atau teks yang diberikan ke output standar. Namun dalam kasus ini, kita menyalurkan output dari echo
perintah ke xargs
. Di sini, echo
perintah akan mengirim jalur direktori ke xargs
sebagai masukan.
xargs
perintah menjalankan cp
perintah dua kali dan menambahkan jalur setiap direktori ke akhir cp
memerintah.
xargs
perintah menerima dua argumen (yaitu jalur direktori) dari echo
memerintah. -n 1
opsi pada xargs
perintah memberitahu xargs
untuk hanya menambahkan salah satu argumen tersebut pada satu waktu.
Sekali lagi, perintah di atas menggantikan file target yang sudah ada. Jika Anda tidak ingin mengganti file target, tambahkan -n
tandai pada perintah:
$ echo ~/Downloads ~/Documents | xargs -n 1 cp -n ostechnix.txt
Metode 3 - Menggunakan perintah tee
Tee
adalah utilitas Unix dan Linux yang digunakan untuk membaca dari input standar dan menulis ke output dan file standar.
Sekarang, mari kita salin ostechnix.txt file ke dalam dua direktori berbeda yang disebut /home/sk/Downloads
dan /home/sk/Documents
.
Untuk melakukannya, jalankan perintah berikut dari Terminal:
$ tee /home/sk/Downloads/ostechnix.txt /home/sk/Documents/ostechnix.txt < /home/sk/ostechnix.txt
Perintah di atas akan menyalin ostechnix.txt
file dari direktori home ke ~/Downloads
dan ~/Documents
direktori.
Harap perhatikan bahwa tee
perintah juga akan menulis input ke output standar. Jika Anda tidak ingin tee
perintah untuk melakukan ini, cukup arahkan output standar ke /dev/null
seperti yang ditunjukkan di bawah ini.
$ tee /home/sk/Downloads/ostechnix.txt /home/sk/Documents/ostechnix.txt < /home/sk/ostechnix.txt >/dev/null
Sekali lagi saya memperingatkan Anda. Jika sudah ada file dengan nama yang sama (yaitu ostechnix.txt
) di tujuan, perintah di atas akan menimpa file yang ada.
Untuk detailnya, periksa halaman manaul dari perintah di atas:
$ man cp
$ man find
$ man xargs
$ man echo
$ man tee
Kesimpulan
Ini adalah bagaimana kami menyalin file ke beberapa direktori sekaligus dari baris perintah di Linux. Mungkin ada cara lain, tetapi saya yakin perintah ini sangat sederhana dan mudah digunakan.
Sekali lagi, pastikan jalur tujuan sudah benar dan yang terpenting pastikan tidak ada file dengan nama yang sama di lokasi target.
Bacaan terkait:
- Cara Menemukan dan Menyalin Jenis File Tertentu Dari Satu Direktori Ke Direktori Lain Di Linux
- Menyalin Jenis File Tertentu Sambil Menjaga Struktur Direktori Di Linux
- Salin File Dan Buat Direktori Target Pada Saat Yang Sama
- Cara Menyalin File Dan Mengubah Kepemilikan, Izin Pada Saat Yang Sama
- Cara Menjaga Kepemilikan Dan Izin File Tetap Terjaga Saat Menyalin File Atau Direktori
- Lanjutkan File yang Ditransfer Sebagian Melalui SSH Menggunakan Rsync
- Cara Cepat Mentransfer File Besar Melalui Jaringan Di Linux dan Unix
- Salinan Tingkat Lanjut – Tambahkan Bilah Kemajuan Ke Perintah cp Dan mv Di Linux
- Menyalin Isi File Ke Clipboard Tanpa Menampilkannya