Как пакетные файлы mv для папок, созданные и названные по дате изменения?

Я совершенно новичок в терминале, и я просто не мог найти ответа на вышеупомянутый вопрос.

На моей OS X у меня есть папка с примерно 4000 фотографиями, которые я бы хотел переместить в папки, имена которых указаны в соответствии с датой изменения (а не датой создания) файлов. Как я могу выполнить это с помощью терминала?

  • Как создать ограниченную очередь для задач оболочки?
  • Сортировка файлов в каталоге рекурсивно на основе последней измененной даты
  • Поиск, подсчет и сортировка всех аудиофайлов. Файлы ALAC (M4A)
  • Как найти файлы в поддирерах и отсортировать их по имени файла в одной команде?
  • Замена номера одним и тем же значением (числом) одного символа
  • Перемещение одного файла за раз, исходя из определенного числа в файлах
  • Сортировка каталогов и файлов
  • 2 Solutions collect form web for “Как пакетные файлы mv для папок, созданные и названные по дате изменения?”

    С perl :

     perl -MPOSIX -le 'for (<*.jpg>) { $d=strftime"%Y-%m-%d",localtime((stat$_)[9]); mkdir$d;rename$_,"$d/$_" or warn "rename $_: $!\n"}' 

    С zsh :

     zmodload zsh/stat for f (*.jpg) {stat -F %F -A d +mtime -- $f && mkdir -p $d && mv -- $f $d} 

    С статусом OSX:

     for file in *; do dir="$(stat -t %Y%m%d%H%M%S -f %Sm -- "$file")" mkdir -p "$dir" mv -- "$file" "$dir/$file" done 

    С GNU stat (т.е. на Linux или Cygwin):

     for file in *; do dir="$(stat -c %Y -- "$file")" mkdir -p "$dir" mv -- "$file" "$dir/$file" done 

    Это переместит каждый файл в каталог с именем mtime (как эпоха).

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

     dir="$(date -d @"$(stat -c %Y -- "$file")" +%F)" 

    См. man date для получения информации о спецификациях формата даты, которые вы можете использовать. В этом случае %F :

    % F полная дата; такие же, как% Y-% m-% d

    Interesting Posts

    Как найти 32-битные библиотеки в 64-разрядной Linux и удалить их?

    Почему не находит. -delete удалить текущий каталог?

    Как установить Sublime Text в качестве текстового редактора по умолчанию?

    Запуск sudo ограниченных команд путем создания софт-ссылки

    Есть ли команда типа «tee», которая ограничивает размер файла и обрабатывает выходной файл как очередь с фиксированным размером?

    Как переходить на виртуальный IP-адрес в качестве шлюза

    Можно ли это объяснить; разница в поведении массива между использованием массива = $ (команда) и array = ($ (команда))?

    трубопроводный тракт до grep

    цвета не расширяются в zsh print -P

    Как подключиться к одному серверу в нескольких экземплярах irssi?

    После перезапуска Chromium шрифты искажены

    Tmux не масштабируется, чтобы заполнить окно

    Заставить sed запрашивать подтверждение перед каждой заменой?

    Может ли ssh вернуть список каталогов?

    Удаленный доступ к DEBIAN / ARM

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