Gunakan direktori sementara, lalu findsemua file Anda, acak daftar dengan sort, dan pindahkan 1000 teratas daftar ke direktori sementara. Hapus sisanya, lalu pindahkan file kembali dari direktori sementara.
$ mkdir ../tmp-dir
$ find . -type f | sort -R | head -1000 | xargs -I "I" mv I ../tmp-dir/
$ rm ./*
$ mv ../tmp-dir/* .
Jika xargsmengeluh tentang panjang garis, menggunakan sejumlah kecil dengan headdan ulangi perintah yang diperlukan (yaitu, perubahan -1000ke -500dan menjalankannya dua kali, atau perubahan -200dan menjalankannya 5 kali.)
Ini juga akan gagal menangani nama file yang menyertakan spasi; sebagai @ rld ini jawaban menunjukkan, Anda dapat menggunakan find's -print0argumen, -zargumen untuk sortdan head, dan -0dengan xargsuntuk memastikan penanganan nama file yang tepat.
Akhirnya, jika tmp-dirsudah ada, Anda harus mengganti nama direktori yang tidak ada.