Mesclando diretórios no Linux em dois sistemas de arquivos

1

Eu tenho uma caixa NAS em execução no modo JBOD (dois discos físicos que funcionam como um). Infelizmente, não tive problemas com esta configuração e desejo alterá-la para dois discos separados. No entanto, todos os meus arquivos estão espalhados entre os dois discos e eu gostaria de consolá-los em uma unidade antes de continuar.

Eu tenho uma estrutura de arquivos como esta (mesmo em ambas as unidades), mas não deve haver confilcts de arquivos (os arquivos devem existir apenas em uma unidade).

/mnt/disk1/home/
 |-- a
 |   |-- file1.txt
 |   |-- file2.txt
 |   |-- file3.txt
 |   |-- file4.txt
 |-- b
 |   |-- file5.txt
 |   |-- file6.txt
 |   '-- file7.txt
 '-- c
     |-- file8.txt
     |-- file9.txt
     '-- file10.txt

/mnt/disk2/home/
 |-- a
 |   |-- file11.txt
 |   |-- file12.txt
 |   |-- file13.txt
 |   '-- file14.txt
 |-- b
 |   |-- file15.txt
 |   |-- file16.txt
 |   '-- file17.txt
 '-- c
     |-- file18.txt
     |-- file19.txt
     '-- file20.txt

Como posso mesclar os arquivos de um disco para o outro (copiar ou mover - não importa, o disco que está sendo copiado DE será formatado posteriormente de qualquer maneira).

Eu tentei variações do rsync, mv, cp etc, mas não encontrei os argumentos corretos para usar. Eu vi essa pergunta ( Mesclar 2 árvores de diretório no Linux sem copiar? ), mas isso especifica que os arquivos NÃO DEVEM ser copiados. Eu estou procurando o oposto (especificar que os arquivos precisam ser copiados).

-Obrigado

    
por calumbrodie 26.03.2011 / 23:48

1 resposta

3

Use apenas um tarpipe para consolidá-los:

( cd /mnt/disk2/home && tar cf - . ) | ( cd /mnt/disk1/home && tar xf - )

Isso moverá todos os arquivos e subdiretórios de / mnt / disk2 / home para / mnt / disk1 / home. O resultado será:

/mnt/disk1/home/
 |-- a
 |   |-- file1.txt
 |   |-- file2.txt
 |   |-- file3.txt
 |   |-- file4.txt
 |   |-- file11.txt
 |   |-- file12.txt
 |   |-- file13.txt
 |   '-- file14.txt
 |-- b
 |   |-- file5.txt
 |   |-- file6.txt
 |   |-- file7.txt
 |   |-- file15.txt
 |   |-- file16.txt
 |   |-- file17.txt
 '-- c
     |-- file8.txt
     |-- file9.txt
     |-- file10.txt
     |-- file18.txt
     |-- file19.txt
     '-- file20.txt
    
por 27.03.2011 / 00:35