Como copiar no bash todos os diretórios e arquivos recursivos?


137

Eu tenho script:

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;

SourceDir contém também subpastas.

Problema que DestFoldernão apenas em toda a árvore, mas em todos os outros níveis e arquivos de nível superior.

Como consertar ?


Desculpe, esqueci de adicionar -name "* .txt"
user710818

Respostas:


289
cp -r ./SourceFolder ./DestFolder

6
Portanto, para esclarecer, a opção -R maiúscula copiará o diretório raiz novamente; A opção -r pequena mantém os caminhos raiz iguais.
AnneTheAgile 7/08

8
@AnneTheAgile - dos meus testes agora e de acordo com as páginas de manual, -r e -R não diferem.
aaaaaa

@aaaaaa, ty! em qual OS / versão você está? Descobri mais tarde que parece que os comandos do bash podem diferir sutilmente entre os sistemas operacionais.
AnneTheAgile

2
cpnão é um comando bash, mas um executável separado, portanto é específico do sistema. Os verdadeiros comandos do bash, por outro lado, são os mesmos nos sistemas operacionais.
lanzz

52

código para uma cópia simples.

cp -r ./SourceFolder ./DestFolder

código para uma cópia com resultado de sucesso

cp -rv ./SourceFolder ./DestFolder

código forçosamente se a fonte contiver algum arquivo somente leitura, ele também copiará

cp -rf ./SourceFolder ./DestFolder

para detalhes ajuda

cp --help
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.