Qual é uma maneira geral boa de fazer uma cópia de diretório profunda/recursiva no Linux que funciona na maioria dos casos? Eu usei coisas simples como cp -R
bem como bastante elaborados cpio
encantamentos. Existem pontos fortes ou fracos significativos que fazem com que você prefira um sobre o outro? Qual você usa com mais frequência?
NAME
cp - copy files and directories
-a, --archive
same as -dpR
-d same as --no-dereference --preserve=links
-p same as --preserve=mode,ownership,timestamps
-R, -r, --recursive
copy directories recursively
Então, em resposta à sua pergunta:
cp -a /foo /bar
Copie tudo recursivamente do diretório/foo para o diretório/bar, preservando os links simbólicos e o arquivo/diretório 'mode' 'posse' e 'timestamps'.
Eu uso um comando como "cd $ srcdir; tar -c. | Tar -C $ destdir -x" na maioria das vezes. Mas também uso rsync -a $ src $ dst.
A maior força da solução tar é que era o que eu tinha que usar em um sistema há muitos anos que não tinha cpio, rsync ou um cp que copiasse recursivamente. O alcatrão está praticamente em todo lugar. Está preso na minha cabeça porque usei muito, provavelmente existem maneiras mais elegantes. Sempre parece fazer o trabalho corretamente, por isso nunca me esforcei muito para encontrar um substituto.
Dê uma olhada em um rsync ... Gosto porque você copia menos dados ao manter dois diretórios atualizados ... também pode funcionar remotamente. Em sua forma mais simples, rsync -a/src/dest
rsync
é uma ótima ferramenta. É o canivete suíço de transferência de dados. É uma ferramenta tão simples e poderosa. Depois de começar a usá-lo, você fica viciado.