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
Aquí hay tres archivos,
$ ls
2019-05-01-00.34.00.msg 2019-05-02-00.36.00.msg 2019-06-14-01.38.00.msg
Utilice la siguiente línea en su terminal,
$ for i in *.msg;do mkdir -p $(awk -F- '{print $1"/"$2"/"$3}' <<< $i) && mv $i $(awk -F- '{print $1"/"$2"/"$3"/"$0}' <<< $i); done
A continuación, mira el árbol,
$ tree
.
└── 2019
├── 05
│ ├── 01
│ │ └── 2019-05-01-00.34.00.msg
│ └── 02
│ └── 2019-05-02-00.36.00.msg
└── 06
└── 14
└── 2019-06-14-01.38.00.msg
6 directories, 3 files