GNU/Linux >> Belajar Linux >  >> Linux

Tidak Dapat Menghapus File Dari Direktori dengan Kesalahan "Daftar argumen terlalu panjang"

Masalahnya

Saat mencoba membuat daftar atau berinteraksi dengan sejumlah besar file dari baris perintah, hasilnya adalah kesalahan berikut:

$ ls -l *.xml | wc -l
bash: /bin/ls: Argument list too long
0
$ rm *.xml
bash: /bin/rm: Argument list too long

atau ketika mencoba menghapus sejumlah besar file menggunakan perintah find gagal dengan pesan kesalahan di bawah ini:

$ find /u01/oracle/apps/fs1/EBSapps/appl/xdo/12.0.0/temp/*.xml -mtime +120 -exec rm -v {} \;
bash: /usr/bin/find: Argument list too long

Solusinya

Ada batas besar tetapi terbatas untuk baris perintah yang dikenakan oleh kernel dan kesalahan yang ditunjukkan di atas menunjukkan bahwa batas telah tercapai.

Untuk mengatasinya, xargs dapat digunakan yang menerima daftar nama file dari input standarnya dan menjalankan perintah pada mereka. Anda dapat menggunakan 'find' dalam kombinasi dengan 'xargs' seperti di bawah ini:

# find . -type f -name '*.xml' | xargs rm

CATATAN :Perintah di atas akan menghapus semua file dengan ekstensi .xml di direktori saat ini tanpa konfirmasi apa pun. Saya akan merekomendasikan Anda untuk terlebih dahulu mengambil cadangan file yang diperlukan sebelum mengeksekusi. Itu selalu baik untuk memverifikasi pada mesin uji dan memeriksa sebelum melanjutkan pada mesin produksi.


Linux
  1. temukan dan hapus file dengan ruang menggunakan perintah find di Linux

  2. Daftar argumen kesalahan terlalu panjang untuk perintah rm, cp, mv

  3. OSError terputus-putus:[Errno 7] Daftar argumen terlalu panjang dengan perintah pendek (~125 karakter)

  1. Ubuntu – Daftar Argumen Terlalu Panjang?

  2. Mengapa Perintah Ls Lambat Mengganggu Di Direktori Nfs Dengan Banyak File?

  3. Menghitung jumlah file dalam direktori dengan perintah terminal OSX

  1. Instal/hapus Daftar Paket Dari Baris Perintah Dengan Apt-get?

  2. Perintah Linux ls - Daftar File

  3. bash:/bin/tar:Daftar argumen terlalu panjang saat mengompresi banyak file dengan tar