Manipulação de arquivos e diretórios

1. Manipulação de arquivos e diretórios

Gleisson Marin Bissa
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...



  


2. Re: Manipulação de arquivos e diretórios

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/11/2016 - 19:28h

Use a opção --parents do cp.


3. Re: Manipulação de arquivos e diretórios

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/11/2016 - 19:53h

PauloHAC escreveu:

Use a opção --parents do cp.


só para ilustrar a resposta
https://www.vivaolinux.com.br/dica/Copiando-arquivos-com-a-estrutura-de-diretorios

___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


4. Resolvido

Gleisson Marin Bissa
gleissonmb

(usa Suse)

Enviado em 29/11/2016 - 00:02h

Pessoal, estou até envergonhado..kkk...Tanto tempo usando o cp e nem enxerguei essa opção. Na verdade queria somente um nível acima de diretório e não o caminho todo, mas já ajudou bastante.

Vlwwwww......


5. Re: Manipulação de arquivos e diretórios

Perfil removido
removido

(usa Nenhuma)

Enviado em 29/11/2016 - 00:36h

gleissonmb escreveu:

Pessoal, estou até envergonhado..kkk...Tanto tempo usando o cp e nem enxerguei essa opção. Na verdade queria somente um nível acima de diretório e não o caminho todo, mas já ajudou bastante.

Vlwwwww......


Não sei se dá pra fazer de outro jeito, mas tenta assim para copiar apenas "um nível acima de diretório", coloca no script o "cd" antes do comando "find".

cd $origem
find . -type f -iname *.jpg -size +150k -exec cp -vrfp --parents {} $destino \;







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts