cp -r sem arquivos ocultos


90

Tenho dois diretórios e um está vazio.

O primeiro diretório possui muitos subdiretórios com arquivos ocultos. Quando eu cp -rconteúdo do primeiro diretório para o segundo, os arquivos ocultos também são copiados. Alguma solução para escapar deles?


é possível, mas removê-los após a cópia pode ser mais simples
Karoly Horvath

6
sim, mas copiar os arquivos ocultos para outros locais é um risco de segurança no meu caso.
Rahul

Respostas:


129

Você pode usar o rsync:

rsync -av --exclude=".*" src dest

1
Alguma sobrecarga quando comparada com o cp?
Rahul

2
@Rahul Não me ocorreu fazer um benchmark, mas acho que você não deveria se preocupar com isso
Eugene Yarmash

3
Funciona bem! Obrigado cara! Apenas para informação, rsync seria ótimo quando o tamanho do arquivo é grande, mas igual a cp no caso de arquivos menores.
Rahul

28

Você pode fazer

cp -r SRC_DIR/* DEST_DIR

para excluir todos os .files e .dirs no nível SRC_DIR, mas ainda copiaria quaisquer arquivos ocultos no próximo nível de subdiretórios.


6
Esse é exatamente o problema .. :)
Rahul

9
Mas funciona para GIT-Repos, se você não quiser copiar todo o índice GIT em .git / ...
Sedat Kilinc

1
Eu adicionei esta resposta porque esta é a solução que eu estava procurando. Não quero excluir todos os invisíveis na árvore, apenas os invisíveis no nível da raiz!
l008com

Outra variante cp SOURCE/[!.]* TARGET.
Carel de

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.