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

2

Nós temos um sistema de arquivos: / foo

E nós 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. Então precisa preservar estes e o dono, permissão, estrutura, arquivos ocultos! Qual é a melhor maneira?

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

UPDATE : podemos usar o gzip com isso? se precisar copiar via rede, a compactação seria muito muito útil.

    
por pepite 28.10.2016 / 19:26

2 respostas

2

Rui's comentar é quase o suficiente; isso deve copiar tudo, incluindo arquivos ocultos:

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

(executado como root ).

Se você quiser compactar os dados copiados entre os dois processos tar , adicione um compressor e um descompactador no pipeline:

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

Se a sua versão de tar oferecer suporte, você poderá usar o z flag:

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

(O sinal -p está habilitado por padrão para root em algumas plataformas, não tenho certeza sobre o AIX.)

    
por 28.10.2016 / 20:27
0

O Tar - embora muito versátil - não sabe sobre muitos problemas subjacentes relacionados aos dados do inode. Eu recomendo 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 uso apenas o acima na linha de comando.

Para um script bonito (de 2009! eeks!) veja: link

    
por 22.11.2016 / 13:26

Tags