Всем привет, небольшой затык у меня.Есть сервер с файлами. Структура папок. Не могу разобраться как реализовать скрипт, который должен 100500 файлов найти по дате, создать папки с датой создания файла и распихать по ним файлы. типа год/месяц/день. Нашел некоторые скрипты, изменил что-то, работает, но если я каждый раз буду указывать ему нужные папки для поиска.
есть такая структура
Основная папка (в ней) ->
папка1/p1/p2/p3/p4/p5 (В этих папках файлы за разные месяца)
папка2/a1/a2/a3/a4/a5
папка3/b1/b2/b3/b4/b5
папка4/c1/c2/c3/c4/c5
папка5/x1/x2/x3/x4/x5
Сейчас такой скрипт у меня
find /Основная папка/папка1/p1 -type f |
while IFS= read -r file; do
year=$(date -d "$D" '+%Y')
month=$(date -d"$(stat -c %y "${file}")" +%m)
day=$(date -d"$(stat -c %y "${file}")" +%d)
[[ ! -d "/Основная папка/папка1/p1/$year/$month/$day" ]] && mkdir -p "/Основная папка/папка1/p1/$year/$month/$day";
mv "$file" "$/Основная папка/папка1/p1/$year/$month/$day"
done
Не могу понять как сделать так, что бы поиск вести сразу в "Основной папке" а не по каждой папке отдельно. Запустил скрипт а он себе сам по всем папкам нашел, создал директории где нужно, разнес файлы и все. Автоматизация так сказать.
Надеюсь понятно описал то что нужно. Спасибо
Скрипт сортировки логов
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 436
- Статус: ¯\_(ツ)_/¯
- ОС: linux based
- Bizdelnick
- Модератор
- Сообщения: 20752
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Скрипт сортировки логов
То есть в каталоге, где находится файл, надо создать подкаталоги $year/$month/$day и переместить туда файл? Если да, то так:
Код: Выделить всё
dir="$(dirname "$file")/$year/$month/$day"
mkdir -p "$dir"
mv "$file" "$dir/"
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |