Реструктуризация директорий
Есть огромная куча файлов(для директорий -type d), которые нужно перенести в директории по дате, т.е.:
/root_dir/year/
/month/
/day
/dir/2012/
/02/
/10
/13
/27
/dir/2012/
/05/
/12
/23
/30
Для этого используем такой скрипт(скрипт писался под CentOS и изменялся под FreeNAS):
CentOS
#!/bin/bash
path="/root/sort/"
dirs=`find $path -maxdepth 1 -type f`
for i in $dirs
do
date="$(stat -c "%y %n" $i | awk '{ print $1 }' | sed s%-%/%g)"
if ! [ -d "$date" ]; then
mkdir -pv "$path$date"
fi
mv -v $i $path$date
done
FreeNAS
#!/bin/bash
path="/root/sort/"
dirs=`find $path -maxdepth 1 -type f`
for i in $dirs
do
date="$(stat -f %Sm -t %Y/%m/%d $i)"
if ! [ -d "$date" ]; then
mkdir -pv "$path$date"
fi
mv $i $path$date
done
Из за большого объема данных переписал скрипт, find запускался отдельно и сохранял данные в файл, содержимое которого выводил вот так:
for i in $(cat /tmp/file.log)
do
...
done