Necesita ayuda para crear subdirectorios para almacenar archivos con fechas en ellos

Necesita ayuda para crear subdirectorios para almacenar archivos con fechas en ellos

Nuevo en este foro, pero no nuevo en RHEL o scripting. Sin embargo este me molesta un poco. Tengo los siguientes archivos:

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

Quiero almacenarlos en directorios como este:

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

También me gustaría conservar el nombre del archivo actual al colocarlo en los directorios. Además, me gustaría hacer esto con bash.

¿Alguna idea?

Respuesta1

Una forma sencilla podría ser utilizar la combinación deencontrar,awkyxargos, simplemente reemplace donde existen los archivos *.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 {} 

Resultados :

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

información relacionada