Gagal hapus, copy atau lihat isi directory dengan error: Argument list too long

Ya, bila Anda pengguna Linux mungkin ini sedikit berguna untuk catatan. Apalagi gw yang masih belum paham bener Linux :D

Proses mv, cp atau ls kemungkinan besar akan stuck kalau jumlah file/folder yang diproses teramat banyak. Katakanlah 6.022.919 file. Wew!!!

Contoh, bila kita akan memindahkan file dengan jumlah sebanyak itu ke folder lain maka akan keluar error seperti ini:

bash: /bin/mv: Argument list too long

Untuk mengatasi hal tersebut bisa dengan menggunakan xargs atau find. Misal, isi dari direktori “utama” akan dipindah ke direktori “tujuan” maka bisa dengan menggunakan perintah di bawah ini:

ls -1 utama | xargs -i mv utama/{} tujuan/

Kalau misal hanya ingin memindahkan file dengan extension tertentu saja (misal .txt) bisa dengan perintah:

find utama/ -name "*.txt" -exec mv {} tujuan\;

atau

find utama/ -name "*.txt" | xargs -i mv {} tujuan/

Bagaimana kalau proses hapus/rm dengan jumlah file yang seabrek itu? Caranya tetap sama, hanya command-nya saja yang beda. Yaitu:

ls -1 utama | xargs -i rm utama/{}

atau bila hanya extension tertentu (misal: .txt)

find utama/ -name "*.txt" -exec rm {} \;

atau juga

find utama/ -name "*.txt" | xargs -i rm {}