Como copiar recursivamente arquivos sem substituir as permissões existentes?

9

Quando copio arquivos de um diretório para outro, as permissões do diretório são redefinidas (por exemplo: de 0755 a 0775), o que causa problemas, forçando-me a voltar e redefinir manualmente as permissões do diretório. Estou fazendo atualmentecp -r /source/directory /destination/directory

Quero copiar todos os arquivos e novos diretórios, mas não substituir as permissões dos diretórios existentes.

Eva
fonte

Respostas:

5

Para preservar os links, você pode usar cp( manpage para cp ) com a -dflag, que é equivalente a --no-dereference --preserve=links.

Para combinar isso com os sinalizadores -pe -R, você pode usar o sinalizador de arquivamento -a.

Val
fonte
7

Adicionar sinalizador -p

cp -pR /source/dir /dest/dir

De man cp:

-p     same as --preserve=mode,ownership,timestamps
vfbsilva
fonte
2

Meu ~/.bashrcfoi modificado para conter

alias cp='cp -i --preserve=all'

Isso significa que, quando eu uso cp, ele também avisa antes de sobrescrever ( -i) e preserva tudo (ou seja, modo, propriedade, registros de data e hora; e, se possível, atributos adicionais: contexto, links, xattr).

Você sempre pode alterá-lo para apenas em modevez de allse quiser, mas eu gosto de ter esse alias para alterar os padrões de cp.

Sparhawk
fonte