Como copiar arquivos no AIX de um FS para outro FS?

Como copiar arquivos no AIX de um FS para outro FS?

Temos um sistema de arquivos: /foo

E temos outro sistema de arquivos: /bar

P:Como posso copiar todos os arquivos de/foo para/bar?

Não temos espaço para compactá-los, apenas para copiá-los. Mas pode haver links simbólicos, hardlinks no sistema de arquivos. Portanto, é necessário preservar estes e o proprietário, permissão, estrutura, arquivos ocultos! Qual é a melhor maneira?

extra: arquivos com caracteres estranhos ou arquivos de blocos/caracteres também

ATUALIZAR: podemos usar gzip com isso? se for necessário copiar via rede, a compactação seria muito útil.

Responder1

Comentário de Ruié quase suficiente; isso deve copiar tudo, incluindo arquivos ocultos:

cd /foo; tar cpf - . | (cd /bar; tar xpvf -)

(correr como root).

Se quiser compactar os dados copiados entre os dois tarprocessos, você poderá adicionar um compressor e um descompressor no pipeline:

cd /foo; tar cpf - . | gzip -9 | (cd /bar; gunzip | tar xpvf -)

Se a sua versão for tarcompatível, você pode usar o zsinalizador:

cd /foo; tar cpzf - . | (cd /bar; tar xpzvf -)

(O -psinalizador está habilitado por padrão rootem algumas plataformas, não tenho certeza sobre o AIX.)

Responder2

Tar - embora muito versátil - não conhece muitos problemas subjacentes relacionados aos dados do inode. Eu recomendo fortemente uma variação de

cd $src; find . | backup -if - | (cd $target; restore -xqf -)

Anos atrás eu trabalhei isso em um 'script bonito' - mas principalmente eu apenas uso o acima na linha de comando.

Para um roteiro bonito (de 2009! Eeks!), Veja:http://www.rootvg.net/content/view/301/309/

informação relacionada