it-swarm-pt.tech

Cópia de diretório recursiva / profunda da linha de comando no Linux?

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?

13
Greg Mattes
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'.

29
Gareth

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.

6
Zoredache

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

6
trent

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.

0
Rory