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

Проверьте что /sys/class/block/sdh ссылки на. Вы видите хост, цель и LUN этот путь. Обычно этого достаточно для точного определения аппаратного адреса устройства.

1
16.07.2013, 14:35
2 ответа

С 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}
2
27.01.2020, 23:21

Со статистикой 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 (т.е. на 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

2
27.01.2020, 23:21
  • 1
    OS/X имеет BSD stat команда с другим синтаксисом. –  Stéphane Chazelas 16.07.2013, 13:31
  • 2
    Ничего себе, я впечатлен для быстрого ответа!Спасибо! Однако я получаю сообщение: "статистика: недопустимая опция - c –  Dave 16.07.2013, 13:38
  • 3
    Благодаря @Gilles для модификаций для использования OSX stat. –  Chris Down 17.07.2013, 14:15

Теги

Похожие вопросы