Ola Cesar, boa tarde
Daria pra usar awk pra gerar os comandos:
ls -1 nodejs-????-??-??.gz | awk -F"-" '{ print "mkdir -p /backup/"$2" ; mkdir -p /backup/"$2"/"$3" ; mkdir -p /backup/"$2"/"$3"/"substr($4,1,2)"; mv " $0 " /backup/"$2"/"$3"/"substr($4,1,2)"/" }' > /tmp/distribuiarquivos
chmod +x /tmp/distribuiarquivos
sh /tmp/distribuiarquivos
rm /tmp/distribuiarquivos
A saida no arquivo /tmp/distribuiarquivos seria:
mkdir -p /backup/2018 ; mkdir -p /backup/2018/03 ; mkdir -p /backup/2018/03/31; mv nodejs-2018-03-31.gz /backup/2018/03/31/
mkdir -p /backup/2018 ; mkdir -p /backup/2018/04 ; mkdir -p /backup/2018/04/26; mv nodejs-2018-04-26.gz /backup/2018/04/26/
mkdir -p /backup/2018 ; mkdir -p /backup/2018/05 ; mkdir -p /backup/2018/05/25; mv nodejs-2018-05-25.gz /backup/2018/05/25/
Boa Sorte
[]s
Ronie
Em 19/09/2018 13:37, Cesar Rodrigues
address@hidden [shell-script] escreveu:
Boa tarde, galera!
Tô precisando de uma luz pra fazer um script pra mover arquivos por data.
Vamos supor que eu tenha o seguinte diretório: /tmp/archive/.
Dentro do diretório /tmp/archive/, tem vários arquivos com a nomenclatura nome-data, exemplo:
nodejs-2018-05-25.gz / nodejs-2018-04-26.gz / nodejs-2018-03-31.gz etc...
Cada arquivo desse tem que ir pra uma pasta com estrutura do tipo:
/backup/2018/05/28/ - /backup/2018/03/31/ - /backup/2018/02/20/ e assim por diante.
Ou seja: Cada arquivo tem que ir pra pasta com a mesma data especificada no arquivo.
/backup/2018/05/28/nodejs-2018-05-28.gz
/backup/2018/03/30/nodejs-2018-03-30.gz
Desde já agradeço a ajuda.