Cópia de diretório recursivo / profundo da linha de comando no Linux?

12

O que é uma boa maneira geral de fazer uma cópia do diretório recursivo / profundo no Linux que funciona na maioria dos casos? Eu usei coisas simples como cp -R , bem como elaborou cpio encantamentos. Existem pontos strongs ou fracos significativos que fazem com que você prefira um sobre o outro? Qual deles você usa com mais frequência?

    
por Greg Mattes 13.05.2009 / 02:14

4 respostas

28
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, responda à sua pergunta:

cp -a /foo /bar

Copie tudo recursivamente do diretório / foo para o diretório / barra enquanto preserva os links simbólicos e o arquivo / diretório 'mode' 'ownership' & 'timestamps'.

    
por 13.05.2009 / 02:36
6

Eu uso um comando como "cd $ srcdir; tar -c. | tar -C $ destdir -x" com mais freqüência. Mas eu também uso o rsync -a $ src $ dst.

A maior força da solução de tar é que é o que eu tive que usar em um sistema muitos anos atrás que não tinha cpio, rsync ou um cp que copia recursivamente. O alcatrão é praticamente em todos os lugares. Está preso na minha cabeça porque eu usei muito, provavelmente há maneiras mais elegantes. Parece que o trabalho é feito corretamente, então eu nunca precisei procurar um substituto.

    
por 13.05.2009 / 02:23
6

Dê uma olhada no rsync ... Eu gosto disso porque você copia menos dados ao manter dois diretórios atualizados ... ele também pode funcionar remotamente. Na sua forma mais simples rsync -a / src / dest

    
por 13.05.2009 / 06:35
0

rsync é uma ótima ferramenta. É o canivete suíço de transferir dados. É uma ferramenta tão simples e poderosa. Depois de começar a usá-lo, você fica viciado.

    
por 05.03.2010 / 10:46