GNU/Linux >> Belajar Linux >  >> Linux

Duplikat File X Kali Di Command Shell?

Saya mencoba menggandakan file video x kali dari baris perintah dengan menggunakan for loop, saya sudah mencobanya seperti ini, tetapi tidak berhasil:

for i in {1..100}; do cp test.ogg echo "test$1.ogg"; done

Jawaban yang Diterima:

Kode shell Anda memiliki dua masalah:

  1. echo seharusnya tidak ada di sana.
  2. Variabel $i salah ketik sebagai $1 di nama file tujuan.

Untuk membuat salinan file di direktori yang sama dengan file itu sendiri, gunakan

cp thefile thecopy

Jika Anda memasukkan hal lain di sana, mis.

cp thefile theotherthing thecopy

maka diasumsikan bahwa Anda ingin menyalin thefile dan theotherthing ke direktori disebut thecopy .

Dalam kasus Anda, ini secara khusus mencari file bernama test.ogg dan satu bernama echo untuk menyalin ke direktori test$1.ogg .

$1 kemungkinan besar akan diperluas ke string kosong. Inilah sebabnya, ketika Anda menghapus echo dari perintah, Anda mendapatkan "test.ogg dan test.ogg adalah file yang sama"; perintah yang dieksekusi pada dasarnya adalah

cp test.ogg test.ogg

Ini mungkin salah ketik.

Pada akhirnya, Anda menginginkan sesuatu seperti ini:

for i in {1..100}; do cp test.ogg "test$i.ogg"; done

Atau, sebagai alternatif

i=0
while (( i++ < 100 )); do
  cp test.ogg "test$i.ogg"
done

Atau, menggunakan tee :

tee test{1..100}.ogg <test.ogg >/dev/null

Catatan:Ini kemungkinan besar akan berfungsi untuk 100 salinan, tetapi untuk ribuan salinan, ini mungkin menghasilkan kesalahan "daftar argumen terlalu panjang". Dalam hal ini, kembali menggunakan loop.


Linux
  1. Perintah wc Linux

  2. Perintah Linux untuk menggabungkan file ke dirinya sendiri sebanyak n kali

  3. Perintah Shell untuk memantau perubahan dalam file

  1. Perintah grep Linux

  2. Untuk apa Linux test -a command test?

  3. Bagaimana cara menjalankan perintah berkali-kali, menggunakan bash Shell?

  1. Perintah Ekor Linux

  2. Perintah Sentuh Linux

  3. Perintah Cat di Linux