Script para dividir arquivos em diretorios

Iniciado por Artur-BR, 28 de Dezembro de 2010, 11:02

tópico anterior - próximo tópico

Artur-BR

Tenho aqui alguns diretórios de fotos pessoais que eu estava querendo subir no meu site e enviar para os familiares via CD.
E como quero fazer da forma mais complicada, ou seja, sem usar programas eu pensei em montar o seguinte.
Varios diretórios nomeados como 001,002 e assim em diante. Dentro de cada um desses diretórios 20 fotos. E uma pagina em HTML para simplesmente exibir as fotos e talvez algum texto.
Um HTML inicial com links para esses diretórios e está feito.
Agora a parte complicada, alguma dica de como monto um script que crie os diretórios em seqüência e mova 20 fotos para dentro de cada um?

Acho que isso pode ajudar a mais alguém ou simplesmente servir como aprendizado de programação.
Abs
Ubuntu 10.10 64 bits em uso diário

Imoogi

os diretórios  vc pode cria assim

#cria 20 diretorios nomeados de 001 a 020
for i in `seq -w 001 020`
do
mkdir $i
done


pra mover as fotos tem que saber a quantidade
da pra montar uma lista com "ls" e ir movendo
uma foto para cada diretorio.

OBS: só por segurança é melhor vc fazer uma copia das suas fotos enquanto
ta montando o script  8)

Artur-BR

Legal!
Agora fiquei pensando, dentro desse loop, nao teria como executar um (tô inventando o comando) "move first 20 to $i"?
Acho que Isso mataria o problema!

E por tabela posso criar um HTML genérico que lista as fotos e dentro desse loop fazer uma copia desse HTML para cada diretório, seria barba e cabelo  ;D

[]s
Ubuntu 10.10 64 bits em uso diário

Artur-BR

Está perto:
#cria 20 diretorios nomeados de 001 a 03
for j in `seq -w 001 003`
do
mkdir $j
ls | head -10 | xargs -I{} mv {} $j
done

Mas agora tem um errinho chato pra danar!
Preciso desprezar o que for diretório e o próprio script. Pois da forma que esta ele cria o diretório, copia os 10 arquivos pra dentro e no próximo ciclo copia o próprio diretório e 9 arquivos.
Ubuntu 10.10 64 bits em uso diário

Artur-BR

Acredito que achei!

for j in `seq -w 001 020`
do
mkdir $j
ls | grep "\.jpg$" | head -10 | xargs -I{} mv {} $j
done


Pelo menos no teste funcionou!
Abs
Ubuntu 10.10 64 bits em uso diário