gleissonmb
(usa Suse)
Enviado em 28/11/2016 - 18:52h
Boa tarde, pessoal.
Gostaria de uma dica para um script que estou escrevendo.
O cenário é o seguinte:
- Preciso copiar arquivos de um local para o outro (backup), filtrando determinadas extensões de arquivo, por exemplo:
find $origem -type f -iname *.jpg -size +150k -exec cp -vrfp {} $destino \;
Até aqui tudo certo. Com este comando varro um uma árvore de diretórios e copio apenas os arquivos que possuem extensão .jpg para um diretório específico.
O problema:
Não gostaria de copiar todos os arquivos para o mesmo diretório de destino (tudo misturado), mas sim, cada arquivo no seu diretório, de mesmo nome do diretório de origem.
Ex:
Origem:
/home/gleisson/fotos/
2015/1.jpg 2.jpg
/home/gleisson/fotos/
2016/3.jpg
Destino:
/home/backup/
2015/1.jpg 2.jpg
/home/backup/
2016/3.jpg
Verificar se um diretório existe e criá-lo, já fiz, o problema é que tem que a criação do diretório está condicionada ao arquivo buscado existir ou não.
A ideia estrutural do script seria mais ou menos assim:
- Varre árvore de diretórios de origem buscando arquivos .jpg.
- Encontrou arquivo?
sim: cria diretório com nome igual ao diretório de origem e copia o arquivo pra dentro dele.
não: segue busca.
Obrigado...