Autor Tópico: Script para dividir arquivos em diretorios  (Lida 2594 vezes)

Offline Artur-BR

  • Usuário Ubuntu
  • *
  • Mensagens: 15
    • Ver perfil
Script para dividir arquivos em diretorios
« Online: 28 de Dezembro de 2010, 11:02 »
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

Offline Imoogi

  • Usuário Ubuntu
  • *
  • Mensagens: 10
    • Ver perfil
Re: Script para dividir arquivos em diretorios
« Resposta #1 Online: 28 de Dezembro de 2010, 11:38 »
os diretórios  vc pode cria assim
Código: [Selecionar]
#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)

Offline Artur-BR

  • Usuário Ubuntu
  • *
  • Mensagens: 15
    • Ver perfil
Re: Script para dividir arquivos em diretorios
« Resposta #2 Online: 28 de Dezembro de 2010, 11:52 »
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

Offline Artur-BR

  • Usuário Ubuntu
  • *
  • Mensagens: 15
    • Ver perfil
Re: Script para dividir arquivos em diretorios
« Resposta #3 Online: 30 de Dezembro de 2010, 14:38 »
Está perto:
Código: [Selecionar]
#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

Offline Artur-BR

  • Usuário Ubuntu
  • *
  • Mensagens: 15
    • Ver perfil
Re: Script para dividir arquivos em diretorios
« Resposta #4 Online: 30 de Dezembro de 2010, 14:53 »
Acredito que achei!

Código: [Selecionar]
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