GNU/Linux >> Belajar Linux >  >> Linux

Salin File Ke Beberapa Direktori Dari Baris Perintah Di Linux

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

Linux
  1. Cara Menghapus File dan Direktori di Linux dari Command Line

  2. Cara Memisahkan Dan Menggabungkan File Dari Baris Perintah Di Linux

  3. Menggunakan Google Drive dari Baris Perintah Linux

  1. Salin dan tempel di baris perintah Linux dengan xclip

  2. Menghapus Baris Tertentu dari File di Baris Perintah Linux

  3. Bagaimana saya bisa menyalin folder dari baris perintah Linux?

  1. Perintah cp Linux

  2. Cara menyalin file ke banyak direktori menggunakan perintah gnu cp

  3. Impor CSV PostgreSQL dari baris perintah