Нужна помощь в создании подкаталогов для хранения файлов с датами.

Нужна помощь в создании подкаталогов для хранения файлов с датами.

Новичок на этом форуме, но не новичок в RHEL или скриптинге. Однако это меня немного раздражает. У меня есть следующие файлы:

2019-05-01-00.34.00.msg 
2019-05-02-00.36.00.msg
2019-06-14-01.38.00.msg

Я хочу хранить их в таких каталогах:

/2019/05/01/<Filename>
/2019/05/02/<Filename>
/2019/06/14/<Filename>

Я хотел бы сохранить текущее имя файла при размещении его в каталогах. Также я хотел бы сделать это с помощью bash.

Есть предположения?

решение1

Простым способом может быть использование комбинациинаходить,awkиxargs, просто замените там, где находятся файлы *.msg :

#!/bin/bash
files="$(find <your_directory> -type f -name '*.msg' | sed 's#.*/##')"
echo "$files" | awk -F '-' '/1/ {print $1"/"$2"/"$3"/"}' | xargs -I {} mkdir -p {}
echo "$files" | awk -F '-' '/1/ {print $1"/"$2"/"$3"/" $0}' | xargs -I {} touch {} 

Полученные результаты :

2019/05/01/2019-05-01-00.34.00.msg
2019/05/02/2019-05-02-00.36.00.msg
2019/06/14/2019-06-14-01.38.00.msg

Связанный контент