Я хочу запустить команду для очень большой папки, чтобы отсортировать каждый элемент по подпапкам на основе даты изменения. Можно ли это сделать одной строкой?
Т.е. все файлы, измененные в июле 2013 года, будут перемещены в 2013-07
etc.
Что-то с find
.... проанализируйте год/месяц, затем переместите в соответствующую папку.
Страница man
для Mac find
находится здесь:https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/find.1.html
решение1
Я нашел ответ.здесь... и модифицировал его под свои нужды:
for f in 12*; do
dir='/foo/bar/'$(stat -f%Sm -t%Y-%m "$f")
[ -d "$dir" ] || mkdir "$dir"
mv -nv "$f" "$dir"/
done
Вы можете заменить m
in -f%Sm
любым из следующих:
а, м, в, Б
- Время файла было последнимадоступ илимodified, когда последний раз был inodeсповешенный, илиБi-е время инода.