Скористайтеся тимчасовим каталогом, а потім findусі ваші файли, рандомізуйте список sortта перемістіть першу частину списку у тимчасовий каталог. Видаліть решту, а потім перемістіть файли назад із тимчасового каталогу.
$ 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вже існує, слід замінити ім’я каталогу, яке не існує.