[Fedora-users-br] Mover Arquivos

Alberto Monteiro albmont em centroin.com.br
Quinta Abril 17 19:23:14 UTC 2008


Cristiano Amaral perguntou:
>
> Estou com o seguinte panorama, tenho um diretório com arquivos
> de 2007 e 2008, preciso mover todos os arquivos de 2008 para
> outro diretório, estou tentando usar o find + o xargs, mas
> ainda não está 100%. Alguém tem alguma dica? 
>
Eu raramente faço essas coisas de uma "tacada" só. Normalmente,
eu procedo em várias etapas. Na 1a, eu gero um arquivo auxiliar,
com o conteúdo do diretório que eu quero analisar. Na 2a,
"grepo" a informação desejada. Na 3a, construo o script para
fazer a operação. Finalmente, rodo o script.

Neste caso:

1a etapa:

find . -type f -printf "Ano:%TY %p\n" > temp1.txt

find . -type f : pega apenas arquivos (ignora diretórios)
-printf "Ano:%TY %p\n" : escreve ano e nome do arquivo

2a etapa:
grep "^Ano:2008" temp1.txt | sed s/Ano:2008 // - > temp2.txt

grep "^Ano:2008" : pega apenas as linhas que começam com Ano:2008
sed s/Ano:2008 // - : substitui Ano:2008 por nada, de forma
que temp2.txt tem apenas os nomes dos arquivos (espero que você
não seja maluco, e não tenha um arquivo com ":" no filename!)

3a etapa:
for x in `cat temp2.txt`; do echo "mv -vi $x /dest/dir/" >> temp3.txt; done

for x in `cat temp2.txt`: faz x valer cada arquivo com data >= 2008
echo "mv -vi $x /dest/dir/" >> temp3.txt : escreve em temp3.txt a operação
de mover o arquivo, tomando cuidado de mostrar o que faz (-v) e perguntar
se destino já existe (-i)

4a etapa:
analisar o script e rodar:
sh temp3.txt

Alberto Monteiro




Mais detalhes sobre a lista de discussão br-users