Переместить 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 
  • cp переписывание без перезаписи жестких ссылок на место назначения
  • Почему переименование файла с помощью команды mv изменяет дату и время «изменения» inode?
  • В RHEL / CentOS 7, действительно ли mv делает cp & rm в одной и той же файловой системе?
  • Как я могу переместить сотни файлов, чьи ключевые слова (ID) их имен файлов указаны в текстовом файле?
  • Не удается найти папку после команды mv
  • Файл существует, но mv ошибки с: "mv: не может stat 'file.tar.gz': Нет такого файла или каталога"
  • Самый быстрый способ переименования файлов без переименования пути каталога
  • перемещение подкаталогов с помощью команды mv
  • Сообщение об ошибке скрипта в одной строке
  • Заменить кучу файлов, поддерживающих путь
  • Перемещение определенных файлов в новое место (и добавление времени datettime)
  • Linux и Unix - лучшая ОС в мире.