Copiar um directório em Unix
Como posso copiar uma estrutura de directório, dir1, para dir2, (com todos os subdirectórios) em Unix usando a janela do terminal?
Como posso copiar uma estrutura de directório, dir1, para dir2, (com todos os subdirectórios) em Unix usando a janela do terminal?
cp -rf /source/path/ /destination/path/
-r
= recursivo, copia todas as subdirectorias
-f
= força, se um ficheiro de destino existente não puder ser aberto, remova-o e tente novamente
Nota Deverá ter cuidado ao utilizar a bandeira -f
porque ela irá sobrescrever à força tudo o que copiar. Obrigado @Nifle por esta sugestão.
Poderá querer usar o wildcard * para copiar todos os ficheiros do directório, se necessário.
Embora as respostas cp -R
estejam certas (BTW o caso da bandeira em BSD deve ser capital, ambas são apoiadas em linux), existe um antigo encantamento envolvendo alcatrão :
$ tar cf - . | (cd DIR; tar xf - )
Porque diabos faria isso? Porque o alcatrão tem um entendimento bastante sofisticado de links tanto duro como simbólico.
Quer copiar para substituir ligações simbólicas existentes por uma que tenha o mesmo texto? Ou com links para o mesmo alvo (ajustando caminhos relativos para compensar)? Ou com cópias bitwise do alvo?
Se dois ficheiros no original estiverem fortemente ligados, a nova estrutura deverá ter duas cópias dos dados ou apenas uma?
Decisões, decisões. O Tar tem padrões sensatos, mas permite ser muito específico a este respeito.
Eu gosto de
cp -axv source dest
Rsync é outra boa ferramenta para este
rsync -va source dest