Organizar arquivos [RESOLVIDO]

1. Organizar arquivos [RESOLVIDO]

Rafael Fernandes
rfernandes

(usa Ubuntu)

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.


  


2. Re: Organizar arquivos [RESOLVIDO]

Mauricio Souza Klein
Hebang

(usa Arch Linux)

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]

Rafael Fernandes
rfernandes

(usa Ubuntu)

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]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

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]

Rafael Fernandes
rfernandes

(usa Ubuntu)

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?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts