Случайно выберите долю файлов из данного каталога

В данной директории имеется около 10000 файлов. Есть ли какая-нибудь команда, которая может помочь мне случайным образом выбрать из него 1000 файлов и поместить их в другой каталог. Выбранные файлы должны быть удалены из исходного каталога.

  • Линейные системные файлы перемещены, как вернуться при загрузке с установщика?
  • Переименуйте набор файлов с шаблоном <имя> .1.gz.html в <имя> .html
  • bash: перемещение файлов с пробелами
  • Обнаруживать, если переменная пуста
  • mv: невозможно удалить каталог: каталог не пуст
  • Каталог ssh исчезает после `mv ssh .ssh`
  • Почему эта операция переименования не работает?
  • перемещение подкаталогов с помощью команды mv
  • One Solution collect form web for “Случайно выберите долю файлов из данного каталога”

    Если у вас есть shuf , он легко позволит вам делать то, что вы хотите, при условии, что в нем нет символа новой строки, и нет подкаталогов:

     mapfile -t sample < <(shuf -n 1000 -e given_directory/*) mv "${sample[@]}" other_directory 

    Если есть подкаталоги, вы можете получить список файлов, используя find вместо glob. Или вы можете перепрофилировать и фильтровать. find также поможет вам разобраться с файлами, которые могут иметь новые строки в своих именах (это действительно плохая идея, но это не обязательно означает, что вы можете игнорировать эту возможность), так как вы можете использовать действие -print0 сочетании с -z flag to shuf . Например,

     find given_directory -type f -print0 | shuf -z -n 1000 | xargs -0 mv -t other_directory 

    mv -t – это (очень полезное) расширение Gnu, которое позволяет вам xargs целевой каталог в начале командной строки, который хорошо работает с xargs / find -exec для ввода нескольких аргументов в конце командной строки.

    Interesting Posts

    Разрешения / dev / shm и / dev / mqueue

    Bash: Как перенаправить вывод каждой команды в файл?

    Убить все задания в очереди

    Fedora 20 ACPI выходит на черный экран перед входом в систему

    Как настроить sudoers, чтобы разрешить запуск команды sudo под другой группой и именем пользователя?

    Как удалить место во всех подкаталогах в сценарии оболочки?

    Удалить символическую ссылку

    Awk: как объединить содержимое строк с дублирующимся идентификатором в первом поле

    Я пытаюсь установить Eclipse, но когда я пытаюсь запустить ./configure It does not Work

    Почему я не могу отправлять сообщения с помощью команды на стене?

    Приложение QT не получает широковещательную передачу udp, поскольку ядро ​​linux 3.13.0-70

    Каков приблизительный масштаб данных, который будет использовать сессия ssh? (Без обмена файлами)

    Поиск дубликатов экземпляров тега в файле

    ttyUSBx восстанавливается до x> 255 и останавливается

    Где файл?

    Linux и Unix - лучшая ОС в мире.