Copie um diretório para HDD externo

0

Estou tentando copiar um diretório para o disco rígido externo. Montei o dispositivo e digitei: cd root tar -cf - * | (cd /mnt ; tar -xpf -)

Recebi esta mensagem de erro: "recusa covarde de criar um arquivo vazio"

Quando eu faço ls para o mesmo diretório raiz - não está vazio - todos os meus arquivos necessários estão lá.

Por que isso acontece?

    
por Shira 13.03.2011 / 09:55

4 respostas

2

Se você deseja copiar o sistema de arquivos raiz e se preocupar com arquivos e dispositivos especiais, a melhor maneira é:

  • primeiro para montar o / em um subdiretório usando a opção de ligação para mount, assim você não terá que se preocupar com / proc, / dev, / sys e outros sistemas de arquivos montados
  • use um comando que saiba como lidar com arquivos especiais, como cp -a ou rsync -a

digamos que você montou o drive externo em / mnt / external

mkdir /mnt/root
mount / /mnt/root -o bind
cp -a /mnt/root/* /mnt/external/

ou

rsync -aP /mnt/root/ /mnt/external/

ou (se você gosta muito de tar, a pior opção)

tar -C /mnt/root -cf - ./ | tar -C /mnt/external -xpf -

adicione -v a qualquer um dos itens acima para saída detalhada, mas isso diminuirá um pouco o processo

    
por 13.03.2011 / 16:05
3

Por que você simplesmente não usa cp -pr source destination ?

De qualquer forma:

cd ~/tmp/source/;tar -cpf - * | (cd ~/tmp/destination;tar -xpf -)

funciona bem.

    
por 13.03.2011 / 12:18
1

Acho que a melhor coisa para copiar estruturas de diretório inteiras é rsync

# rsync -avP /path/to/source/* /path/to/destination/

Isso também tem a vantagem de poder acessá-lo para ou de um diretório remoto por meio do ssh.

    
por 13.03.2011 / 13:15
1

Por favor, use o utilitário POSIX PAX .

Ao contrário do cp, o pax funciona da mesma forma em todos os sistemas . Com o pax, você sempre pode copiar com segurança os sistemas de arquivos com arquivos especiais, como nós de dispositivos.

Para copiar um sistema de arquivos / mnt / foo para / mnt / bar, as permissões de preservação, registros de data e hora e arquivos especiais são:

# cd /mnt/foo
pax -rw -pe -X . /mnt/bar/
    
por 13.03.2011 / 16:51