ใช้ไดเรกทอรีชั่วคราวจากนั้นfindไฟล์ทั้งหมดของคุณสุ่มรายการด้วยsortและย้าย 1,000 รายการแรกไปยังไดเรกทอรีชั่วคราว ลบที่เหลือแล้วย้ายไฟล์กลับจากไดเรกทอรีชั่วคราว
$ mkdir ../tmp-dir
$ find . -type f | sort -R | head -1000 | xargs -I "I" mv I ../tmp-dir/
$ rm ./*
$ mv ../tmp-dir/* .
ถ้าxargsบ่นเกี่ยวกับความยาวเส้นใช้จำนวนขนาดเล็กที่มีheadและทำซ้ำคำสั่งตามความจำเป็น (เช่นการเปลี่ยนแปลง-1000ไป-500และเรียกใช้มันสองครั้งหรือการเปลี่ยนแปลงไป-200และเรียกใช้ 5 ครั้ง.)
มันจะล้มเหลวในการจัดการชื่อไฟล์ที่มีช่องว่าง เป็น@ rld ของคำตอบที่แสดงให้เห็นว่าคุณสามารถใช้find's -print0อาร์กิวเมนต์ที่-zข้อโต้แย้งsortและheadและ-0มีxargsเพื่อให้แน่ใจว่าการจัดการชื่อไฟล์ที่เหมาะสม
ท้ายที่สุดถ้าtmp-dirมีอยู่แล้วคุณควรแทนที่ชื่อไดเรกทอรีที่ไม่มีอยู่