Переместить 2000 PDF-файлов в несколько папок, каждый из которых содержит 100 файлов

У меня есть одна папка с 2000 файлами PDF на Mac. Используя командную строку, я хотел бы переместить каждый 100 PDF-файлов в другую папку, которая будет создана в том же каталоге. Так что у меня было бы 20 папок (названных 1, 2 и т. Д.), Каждая из которых содержала бы 100 PDF-файлов в основном каталоге. Как я могу это достичь?

2 Solutions collect form web for “Переместить 2000 PDF-файлов в несколько папок, каждый из которых содержит 100 файлов”

Вы можете использовать set , пакетные пакеты из 100 файлов с помощью "${@:START:COUNT}" (диапазон позиционных параметров) и shift 100 при увеличении счетчика c для создания каталогов:

 set -- *.pdf c=1 while (($#)); do mkdir ${c} if [ $# -ge 100 ]; then mv -- "${@:1:100}" ${c} c=$((c+1)) shift 100 else mv -- "${@}" ${c} shift $# fi done 

Я только что написал ниже сценарий bash для вашей конкретной проблемы. Это может вам помочь.

 #!/bin/bash DEFAULT_DELIM_SIZE=100 num_of_total_file=$(ls | grep "pdf" | wc -l) num_of_total_folder=$((num_of_total_file/DEFAULT_DELIM_SIZE)) echo "Total number of pdf files = $num_of_total_file" echo "Total number of folder will generated if not exist $num_of_total_folder" # create directories if not exist for (( i = 0; i < $num_of_total_folder; i++ )); do if [[ ! -d $i ]]; then mkdir $i fi done # file name format should be like this <arbitrary_numb>-<folder_num>.pdf for file in *.pdf; do prefix=$(echo $file | awk '{split($0, a, "-"); print a[2]}' | awk '{split($0, a, "."); print a[1]}') if [[ -d $prefix ]]; then mv $file $prefix fi done 
  • Переместить каждый файл, который не является каталогом
  • Почему rsync не использует команду mv при указании --remove-source-файлов?
  • Переименуйте набор файлов с шаблоном <имя> .1.gz.html в <имя> .html
  • Атомное удаление каталога
  • Перемещение нескольких файлов из нескольких каталогов в исходный адрес
  • Как извлечь специально названную папку из рекурсивного каталога, удалить остальные?
  • Перемещение определенных файлов в новое место (и добавление времени datettime)
  • Перемещение файлов рекурсивно, если выполняется определенное условие
  • Переместить файл и сохранить владельца и режим в одной атомной операции
  • команда прогресса не показывает прогресс mv
  • Как переименовать файл в ... (точка точка)?
  • Переименовать файлы в индекс
  • Interesting Posts

    Каковы ограничения объема для установки extglob. и другие варианты?

    синтаксическая ошибка рядом с неожиданным токеном `then '

    Создание и установка C * Music Player (CMUS)

    Как я могу ограничить разрешения на вино?

    Предотвратите использование USB-накопителя при использовании другого устройства при сбросе

    Различия между / home, / root и / usr

    ToyVpnService выдает исключение PortUnreachableException и истекает после первоначального подключения

    конфигурация shorewall для разрешения хромирования

    Совместное использование локального каталога между локальными пользователями с полными разрешениями

    Как предоставить права пользователя root?

    Безопасно ли rm -rf / tmp / *?

    dnf эквивалент "yum update –security"

    Как я могу использовать команды ruby ​​gem, такие как bundler, когда ruby ​​устанавливается менеджером пакетов nix?

    Могу ли я установить несколько каталогов для $ HOME?

    Не знаю, как устранить проблему с электронной почтой Bugzilla

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