Beranda » bagaimana » Cara Menyalin File ke Beberapa Direktori Dengan Satu Perintah di Linux

    Cara Menyalin File ke Beberapa Direktori Dengan Satu Perintah di Linux

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

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

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

    Untuk menyalinnya ke dua direktori lagi, banyak orang akan menjalankan perintah dua kali lagi, 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 file cp1

    Beginilah cara kerja perintah ini. Itu gema Perintah biasanya menulis ke layar. Namun, dalam hal ini, kami ingin memberi makan output dari gema perintah sebagai input ke xargs perintah. Untuk melakukan ini, kami menggunakan simbol pipa ( | ) yang mengumpankan output dari satu perintah sebagai input ke perintah lain. Itu xargs perintah akan menjalankan cp perintah tiga kali, setiap kali menambahkan jalur direktori berikutnya disalurkan ke dari gema perintah ke akhir cp perintah. Ada tiga argumen yang diteruskan xargs , tetapi -n 1 pada opsi xargs perintah memberitahu itu untuk hanya menambahkan salah satu argumen pada suatu waktu ke cp perintah setiap kali dijalankan.

    Jadi, untuk tetap dengan contoh kita sebelumnya, ketiganya terpisah cp perintah 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 tujuan itu akan diganti secara otomatis. Anda tidak akan ditanya apakah Anda ingin mengganti file. (Biasanya, saat Anda menggunakan cp perintah untuk menyalin file ke satu lokasi, Anda dapat menambahkan -saya opsi untuk bertanya apakah Anda ingin mengganti file yang ada. Namun demikian -saya opsi adalah opsi interaktif (itu menyebabkan cp perintah untuk meminta input dari pengguna) dan Anda tidak dapat menggunakan opsi interaktif dengan cp perintah saat menggunakannya bersamaan dengan xargs .)

    Satu hal lagi yang perlu dipertimbangkan, adalah bahwa jika Anda menyalin file yang sangat besar, Anda mungkin ingin menambahkan no-clobber ( -n ) pilihan ke cp perintah dalam satu perintah di atas. Opsi ini secara otomatis mencegah file ditimpa di suatu tujuan jika sudah ada di sana. Jika Anda menyalin file yang sangat besar melalui jaringan, mungkin lambat dan Anda mungkin ingin menghindari menggunakan sumber daya yang diperlukan untuk menyalin dan mengganti file. Perintah berikut menambahkan -n opsi, dan tidak akan menyalin file ke tujuan apa pun yang tercantum dalam argumen ke pernyataan gema, jika file sudah ada di tujuan itu.

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

    Ketik man echo, man xargs, atau man cp pada baris perintah di Linux untuk informasi lebih lanjut tentang perintah-perintah ini.