(Diselesaikan) -bash /bin /mv senarai argumen terlalu lama

(Diselesaikan) -bash /bin /mv senarai argumen terlalu lama

Semasa bekerja dengan sejumlah besar fail di Linux, tidak biasa untuk menghadapi ralat "/bin/mv: senarai argumen terlalu lama". Kesalahan ini berlaku ketika cuba bergerak atau menamakan semula terlalu banyak fail sekaligus, dan merupakan batasan sistem operasi yang mendasari. Dalam artikel ini, kita akan membincangkan apa yang menyebabkan kesilapan ini, dan meneroka cara untuk mengerjakannya untuk melaksanakan operasi fail berskala besar dengan cekap dan tanpa kesilapan. Sama ada anda seorang pemula atau pengguna Linux yang berpengalaman, artikel ini akan memberi anda pandangan yang berharga untuk mengatasi masalah biasa ini.

-bash: /bin /mv: Senarai argumen terlalu lama

Senarai argumen terlalu lama adalah masalah biasa dengan bash yang boleh berlaku apabila anda mempunyai parameter baris arahan panjang atau argumen. Anda mula menjalankan skrip dan membuang kesilapan seperti "perintah tidak sah" atau "terlalu lama". Sebabnya ialah shell cuba membaca melewati akhir senarai hujah anda dan tidak ada akhir paip input untuk menunggu. Pembolehubah sistem Arg_max mentakrifkan Panjang argumen watak maksimum Dalam perintah shell.

Penyelesaiannya

Penyelesaian cepat adalah menggunakan Xargs utiliti baris perintah atau cari arahan dengan -exec ... . Kedua -dua perintah itu memecahkan perintah besar menjadi lebih kecil dan menyelesaikan tugas tanpa kesilapan.

  • Penyelesaian 1: Cari dengan Xargs
  • Untuk menyelesaikan masalah ini, anda boleh menggunakan -cetak0 pilihan dengan "cari" perintah dan -0 Pilihan dengan arahan "Xargs". Ini akan membolehkan "Xargs" Untuk mengendalikan fail dengan ruang atau aksara khas dalam nama mereka dengan betul, dan juga membolehkan pemprosesan sejumlah besar fail tanpa menghadapi ralat "senarai argumen terlalu panjang".

    Inilah contoh:

    cari . -Taipkan F -name "*.txt "-print0 | xargs -0 mv -t ~/dokumen  

    Dalam contoh ini, pilihan -print0 digunakan dengan arahan "cari" untuk memisahkan fail dengan watak null dan bukannya garis baru, dan pilihan -0 digunakan dengan perintah "Xargs" untuk menentukan item input dipisahkan oleh null watak. Ini membolehkan "Xargs" mengendalikan sebilangan besar fail tanpa menghadapi ralat "senarai argumen terlalu panjang".

  • Penyelesaian 2: Cari dengan EXEC
  • Daripada menggunakan Xargs, kita juga boleh menggunakan -perintah eksekutif. Di sini cari akan mencari fail dan eksekutif akan melaksanakan arahan MV untuk setiap fail satu demi satu dan gerakkan fail ke direktori destinasi.

    cari . -Nama '*.txt '-exec mv  ~/ documents/ \; 

    Perintah lalai di atas akan menavigasi secara rekursif ke sub-direktori. Untuk mengehadkan penemuan ke direktori semasa hanya gunakan -MaxDepth diikuti dengan nombor had ke sub-direktori.

    cari . -Nama '*.txt '-maxdepth 1 -exec mv  ~/ documents/ \; 

Kesimpulan

Kesimpulan. Ia berlaku apabila bilangan fail yang diluluskan sebagai argumen kepada arahan "mv" melebihi had maksimum yang dibenarkan oleh sistem operasi. Untuk mengatasi masalah ini, kita boleh menggunakan perintah "Cari" dan "Xargs" untuk lulus sebilangan besar fail sebagai argumen kepada arahan "MV", atau kita boleh menggunakan alat seperti "selari" atau "selari GNU" untuk melaksanakan besar -Skala operasi fail dengan cekap dan tanpa kesilapan.

Memahami sebab dan penyelesaian kepada ralat "/bin/mv: senarai argumen terlalu panjang" adalah penting bagi sesiapa yang bekerja dengan sejumlah besar fail di Linux, dan akan membantu anda mengelakkan kekecewaan dan membuang masa apabila melakukan operasi fail.