28Jun

Cara Menyalin File ke Beberapa Direktori Dengan Satu Perintah di Linux

click fraud protection

Menyalin file dengan command line Linux sangatlah mudah. Namun, bagaimana jika Anda ingin menyalin file yang sama ke beberapa lokasi yang berbeda? Itu mudah juga, dan kami akan menunjukkan cara melakukannya dengan satu perintah.

Biasanya, untuk menyalin satu file, Anda akan menggunakan perintah cp, menautkan ke file sumber dan direktori tujuan:

cp ~ /Documents/ FileToBeCopied.txt ~ /TextFiles/

Untuk menyalinnya ke dua direktori lagi, banyak orang hanya akan menjalankan perintah duakali lebih banyak, dengan tujuan yang berbeda:

cp ~ /Documents/ FileToBeCopied.txt ~ /Dropbox/ cp ~ /Documents/ FileToBeCopied.txt /media/lori/MYUSBDRIVE/

Namun, kita dapat melakukan tugas yang sama dengan satu perintah:

echo dir1 dir2 dir3 |xargs -n 1 cp file1

Inilah cara kerja perintah ini. Perintah echo biasanya menulis ke layar. Namun, dalam kasus ini, kita ingin memberi makan output dari perintah echo sebagai masukan pada perintah xargs. Untuk melakukan ini, kita menggunakan simbol pipa( |) yang memberi makan output dari satu perintah sebagai masukan ke yang lain. Perintah xargs akan menjalankan perintah cp tiga kali, setiap kali menambahkan jalur direktori berikutnya yang disalurkan ke perintah echo ke akhir perintah cp. Ada tiga argumen yang dilewatkan ke xargs, namun opsi -n 1 pada perintah xargs mengatakannya hanya untuk menambahkan salah satu argumen tersebut setiap saat ke perintah cp setiap kali dijalankan.

instagram viewer

Jadi, untuk tetap berpegang pada contoh kita dari sebelumnya, ketiga perintah cp yang terpisah di atas dapat digabungkan menjadi satu perintah seperti ini:

echo ~ /TextFiles/ ~ / Dropbox /media/lori/ MYUSBDRIVE |xargs -n 1 cp ~ /Documents/ FileToBeCopied.txt

Perhatikan bahwa jika file yang disalin ada di salah satu direktori tujuan yang ditentukan, file di tempat tujuan akan diganti secara otomatis. Anda tidak akan ditanya apakah ingin mengganti file.(Biasanya, ketika Anda menggunakan perintah cp untuk menyalin file ke satu lokasi, Anda dapat menambahkan opsi -i untuk menanyakan apakah Anda ingin mengganti file yang ada. Namun, opsi -i adalah opsi interaktif( ini menyebabkanperintah cp untuk meminta masukan dari pengguna) dan Anda tidak dapat menggunakan opsi interaktif dengan perintah cp saat menggunakannya bersamaan dengan xargs.)

Satu hal lain yang perlu dipertimbangkan, apakah jika Anda menyalin file yang sangat besar, Anda mungkiningin menambahkan opsi no-clobber( -n) ke perintah cp dalam satu perintah di atas. Opsi ini secara otomatis mencegah agar file tidak ditimpa di tempat tujuan jika sudah ada di sana. Jika Anda menyalin file yang sangat besar melalui jaringan, mungkin lambat dan Anda mungkin ingin menghindari penggunaan sumber daya yang diperlukan untuk menyalin dan mengganti file. Perintah berikut menambahkan opsi -n, dan tidak akan menyalin file ke tujuan yang tercantum dalam argumen ke pernyataan echo, jika file tersebut sudah ada di tujuan itu.

echo ~ /TextFiles/ ~ / Dropbox /media/lori/ MYUSBDRIVE |xargs -n 1 cp -n ~ /Documents/ FileToBeCopied.txt

Jenis man echo, man xargs, atau man cp pada baris perintah di Linux untuk informasi lebih lanjut tentang salah satu dari perintah ini.