Daftar argumen -bash /bin /rm terlalu lama - solusi

Daftar argumen -bash /bin /rm terlalu lama - solusi

Gejala

Pesan kesalahan ini muncul saat Anda mencoba menghapus, memindahkan, atau menyalin daftar panjang file. Saat menggunakan shell Anda, perintah hanya dapat menerima sejumlah argumen terbatas. Ketika jumlah argumen yang dipasok ke perintah melebihi jumlah argumen yang diizinkan, pesan kesalahan akan muncul:

-bash: /bin /rm: daftar argumen terlalu lama 
Perintah Linux untuk menemukan batas Anda untuk argumen maksimal:
# getConf arg_max 2097152 

Contoh:

# rm * -bash: /bin /rm: Daftar argumen terlalu lama 

Larutan

Ada sejumlah solusi untuk masalah ini. Pertama, jika tidak ada file dalam direktori yang ingin kami simpan, solusi terbaik dan tercepat adalah dengan hanya menghapus seluruh direktori dan membuatnya kembali. Sebelum Anda melanjutkan, pastikan bahwa direktori tidak berisi file yang ingin Anda simpan dan bahwa Anda mencatat tentang izin dan kepemilikan direktori ini.

$ cd… / $ ls -d mydirectory $ rm -fr mydirectory $ mkdir mydirectory 

Solusi lainnya adalah melibatkan loop untuk dan menghapus semua file satu:

$ untuk saya di *; do rm "$ i"; Selesai 

atau jauh lebih cepat dengan menggunakan printf Dan xargs:

$ printf '%s \ 0' * | xargs -0 rm 

atau

$ waktu echo -n * | tr "\ 0 '| xargs -0 rm 

Namun, solusi di atas memiliki batasannya sendiri karena juga dapat menghapus file yang ingin kami simpan jika tidak ada ekspresi reguler yang tepat di tempat. Adapun contoh di sini kita hanya akan menghapus *.txt File:

$ untuk saya di *.txt; do rm "$ i"; Selesai 

Solusi terakhir dan yang diusulkan adalah menggunakan regex untuk membagi semua file menjadi batch yang lebih kecil. Temukan pola yang sama di semua file dan belahlah menjadi grup yang lebih kecil. Misalnya hapus, salin atau pindahkan semua file yang dimulai dengan A dan memiliki ekstensi txt, Setelah itu semua file yang dimulai B dan seterusnya.:

$ rm a*.txt $ rm b*.txt 

Anda juga dapat melakukan hal di atas untuk semua huruf menggunakan loop:

$ for i in $ (echo a ... z); lakukan rm $ i*.txt ; Selesai 

Tutorial Linux Terkait:

  • Cara memindahkan folder di linux
  • Perintah Linux Dasar
  • Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
  • Dasar -dasar editor VIM di Linux
  • Bash Script: Bendera Penggunaan dengan Contoh Argumen
  • Cara Mengatur Server OpenVPN di Ubuntu 20.04
  • Perintah manusia di Linux dengan contoh
  • Ubuntu 20.04: Daftar klien torrent
  • Ubuntu 20.04 trik dan hal -hal yang mungkin tidak Anda ketahui
  • Bagaimana Mengelola Sejarah Bash