Pular para o conteúdo

Organizar arquivos [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Organizar arquivos [RESOLVIDO]

Enviado em 29/03/2011 - 16:34h

Seguinte,
Estou pesquisando e tentando escrever um script para organizar arquivos .mp3 só não tive muito sucesso ainda....
Imaginem a seguinte situação:
Em uma pasta tenho varios arquivos com o seguinte padrão de nome: 20110329_121522.mp3, 20110329_131145.mp3, 20110328_141055.mp3,etc.
Preciso move-los para pastas dos respectivos dias (no caso de 20110329_121522.mp3 para a pasta 20110329).
Eu até consigo, com o comando (ls *.mp3 | tac | tail -n1) "selecionar" o primeiro arquivo que preciso mover.
E com o comando (ls *.mp3 | tac | tail -n1 | cut -d "_" -f1) a pasta de destino deste arquivo.
Só não consigo montar um script para fazer isso...
Se ao menos alguem souber como atribuo o resultado destes comandos para uma variavel já me ajuda e MUITO.
Grato.

Responder tópico

2. Re: Organizar arquivos [RESOLVIDO]

Enviado em 29/03/2011 - 16:52h

#!/bin/bash

for i in `ls -1`; do
DIR=$(echo $i | cut -d'_' -f1)
mv $i $DIR
done



Coloque esse script no diretorio onde estão os arquivos que queira mover. No caso, os diretórios também estarão nesse caminho.

PS: Faça um backup dos arquivos por segurança. Fiz esse script no corridão, então pode conter bugs.

Espero ter ajudado!

3. Re: Organizar arquivos [RESOLVIDO]

Enviado em 29/03/2011 - 17:09h

Cara..teu script não fez nada...
Por outro lado, MUITO OBRIGADO, pelo menos por agora...
Porque no teu exemplo ali tu colocou: DIR=$(echo $i | cut -d'_' -f1)
O que acabou respondendo minha pergunta: "Se ao menos alguem souber como atribuo o resultado destes comandos para uma variavel já me ajuda e MUITO."
Vou continuar tentando montar ele aqui e vou postando o que eu conseguir para talvez ajudar algum no futuro...
E se alguem tiver ideias de como posso fazer, por favor poste aqui :D

4. Re: Organizar arquivos [RESOLVIDO]

Enviado em 29/03/2011 - 18:20h

acredito que o problema possa ter sido que o script não cria as pastas, apenas move ... veja se assim funciona.




for i in `ls *.mp3`; do
DIR=$(echo $i | cut -d'_' -f1)
if [ ! -d $DIR ]; then mkdir $DIR; fi
mv $i $DIR/
done


5. Re: Organizar arquivos [RESOLVIDO]

Enviado em 30/03/2011 - 10:34h

Cara, muito obrigado pela força!
Alterei algumas coisas no script e ficou quase como preciso que ele execute....

for i in `ls *.mp3`-1; do
ANO=$(echo $i | cut -c1,2,3,4)
if [ ! -d $ANO ]; then mkdir $ANO; fi
MES=$(echo $i | cut -c5,6)
if [ ! -d $MES ]; then mkdir $ANO/$MES; fi
DIR=$(echo $i | cut -c7,8)
if [ ! -d $DIR ]; then mkdir $ANO/$MES/$DIR; fi
mv $i $ANO/$MES/$DIR/
done

Ele separa os arquivos em ano, mes e dia certinho...
Só tem um porem (aaaa os porens :P)
Eu preciso estar na pasta onde estão todos audios desorganizados para rodar ele e funcionar...
Como eu preciso agendar ele pelo cron, acho que não vai funcionar....
Alguma ideia?

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder