Precisa de ajuda para criar subdiretórios para armazenar arquivos com datas

Precisa de ajuda para criar subdiretórios para armazenar arquivos com datas

Novo neste fórum, porém não novo no RHEL ou scripts. No entanto, este está me irritando um pouco. Eu tenho os seguintes arquivos:

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

Quero armazená-los em diretórios como este:

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

Eu também gostaria de manter o nome do arquivo atual ao colocá-los nos diretórios. Além disso, eu gostaria de fazer isso com o bash.

Alguma ideia?

Responder1

Aqui estão três arquivos,

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

Use o seguinte liner em seu 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 seguir, veja a árvore,

$ 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

informação relacionada