Como tornar dois diretórios idênticos?

3

Eu tenho um arquivo de documentos no meu diretório inicial, como de costume. Agora na minha pasta dropbox eu criei um novo diretório chamado Documents. Agora existe alguma maneira de que esses dois sejam iguais? ou seja, se eu atualizar qualquer um desses, ambos serão atualizados. Eu acho que isso pode ser feito por symlink, mas a idéia de links simbólicos não é clara para mim sobre o que faz.

    
por Unbound 30.04.2014 / 13:11

3 respostas

1

Apenas use links simbólicos:

ln -s ~/Documents ~/Dropbox/

Isso criará um diretório no seu $HOME/Dropbox que, na verdade, é um link para ~/Documents . Isso significa que todas as alterações feitas no ~/Documents também serão visíveis em ~/Dropbox/Documents , pois o último é apenas um link para o primeiro.

Links simbólicos são truques simples. Você pode pensar no symlink como uma cópia virtual do destino do link. Todas as operações feitas no link são aplicadas ao destino. Os dois são cópias exatas um do outro. A exclusão do link não afetará o destino de nenhuma maneira. Para ilustrar, aqui está um exemplo simples:

$ mkdir foo
$ touch foo/file1
$ tree
.
└── foo
    └── file1

1 directory, 1 file

Portanto, temos um diretório chamado foo que contém um arquivo chamado file . Agora, o que acontece se criarmos um link para foo ?

$ ln -s foo bar
$ tree
.
├── bar -> foo
└── foo
    └── file1

2 directories, 1 file

OK, vamos ver o conteúdo de bar :

$ ls bar
file1

E se excluirmos o arquivo?

$ rm foo/file1
$ ls bar
$

O diretório bar agora está vazio porque é apenas um link simbólico para foo , portanto, excluir foo/file1 também excluiu bar/file1 porque os dois eram o mesmo arquivo .

Por outro lado, a exclusão do link em si não afetará o original porque o link é apenas isso, um link.

    
por terdon 30.04.2014 / 13:40
0

Pergunta semelhante: verifique isso Espelhar automaticamente um diretório no Ubuntu

O que você está tentando fazer é o que o RAID e outros animais fazem, seria ótimo se você ler sobre eles, talvez isso lhe dará uma solução melhor. Criar um backup para outra pasta na mesma unidade não é muito bom.

    
por eakdev 30.04.2014 / 13:32
0

Eu sugiro usar o comando rysnc :

rsync (significa sincronização remota) é uma ferramenta de código aberto para transferência de dados entre sistemas Unix.

rsync sincroniza diretórios - faz um diretório olhar (contém os mesmos arquivos e subdiretórios) exatamente como outro. comparando-os conforme critérios especificados (tamanho do arquivo, data de criação / modificação ou checksum).

Como usar o rsync :

sudo rsync -az /pathof folder A /pathof folder B

sudo rsync -az /pathof folder B /pathof folder A

-a archive mode (implies recursive, copy symlinks as symlinks, preserve owner, modification times, group, owner, special and device files)

-z compresses the data

Eu também sugiro usar o comando watch que irá repetir o rsync a cada intervalo de tempo, ou usar o cron.

Para mais informações sobre o comando watch: Aqui

Referência: aqui

    
por nux 30.04.2014 / 14:06