Uma pasta com dois locais diferentes no Ubuntu 18.04


10

Eu quero ter a mesma pasta em dois locais diferentes no meu Ubuntu. Se eu atualizar algo em um, ele também deverá ser atualizado no outro local.

Como posso fazer isso acontecer?


8
esses dois locais precisam ser físicos (como em 2x ocupando espaço) ou podem ser links?
— Rinzwind

19
A symbolic linké a solução mais simples para seus requisitos e não depende de privilégios de superusuário. man lnPara maiores informações.
— doneal24

Respostas:


16

Use montagens de ligação .

Suponha que você tenha um diretório existente /home/pandey/originale deseje espelhá- lo para /home/pandey/mirrorque tudo o que você faça em um deles seja feito automaticamente no outro também.

Isso não requer nenhuma sincronização ou cópia entre os dois diretórios. Uma montagem de ligação é apenas outra visualização do diretório original e o que acontece em uma também acontece na outra.

  1. Crie (como usuário) o novo diretório /home/pandey/mirror:

    mkdir /home/pandey/mirror
    
  2. bind-mount o diretório original no caminho recém-criado. Isso requer acesso root:

    sudo mount --bind /home/pandey/original /home/pandey/mirror
    
  3. Apreciar.

Para desfazer isso, basta

sudo umount /home/pandey/mirror
rmdir /home/pandey/mirror

Consulte também esta pergunta e sua excelente resposta automática em stackexchange sobre bind-mounts .


3
+1, com certeza esse caminho é mais rápido do que o proposto.
— Codito ergo sum 23/06/19

13
Teria cd /home/pandey; ln -s original mirroro mesmo efeito e não exigiria direitos de sudo?
— doneal24

19
Sim, estou me perguntando por que as pessoas estão propondo essas soluções indiretas enquanto isso soa como um caso de uso clássico para um simples link sym. Qual a vantagem? Até onde eu vejo, nenhuma das vantagens listadas na pergunta mencionada parece se aplicar aqui.
— Voo

5
@ doneal24 Eu concordo: a ligação simbólica tem o mesmo efeito de um ponto de vista prático e não requer alterações fundamentais no sistema nem privilégios de administrador.
— vanadium

2
A pergunta vinculada sobre montagens de ligação possui uma boa lista de possíveis casos de uso. Apenas precisar de outro caminho nomeado para um diretório não é um deles.
— Dubu

44

Como apontado nos comentários, mas não como uma resposta adequada:

Em muitos casos, um link simbólico é a solução mais fácil.

Você pode criá-los facilmente na linha de comando (usando o lncomando com o -sparâmetro). Você também pode criá-los facilmente usando uma GUI: A maioria dos navegadores de arquivos (nautilus, ...) permite criar um link simbólico usando arrastar e soltar (como mover um arquivo) enquanto mantém pressionada uma tecla modificadora (CTRL + SHIFT).

Exemplo para uso da linha de comando:

$ mkdir first_dir
$ ln -s ./first_dir ./second_dir
$ ls 
first_dir  second_dir

$ touch ./first_dir/test_1
$ touch ./second_dir/test_2

$ ls ./first_dir 
test_1  test_2

$ ls ./second_dir
test_1  test_2

2

Você pode fazer isso definindo um trabalho crontab:

  • Abra seu terminal e digite crontab -e
  • Pressione ipara ativar o modo de inserção do seu editor vim.

Você pode inserir o comando que deseja que seja executado lá, para poder copiar todos os arquivos da pasta em outra pasta. Por exemplo, se você deseja copiar todos os arquivos em /home/user/folder_nameque /home/user/publicvocê deve inserir este comando no seu crontabarquivo:

rsync /home/user/folder_name -r /home/user/public

Isso copiará todos os arquivos no intervalo desejado. Se você deseja copiar todos os arquivos às 21:30 todos os dias, sua edição deve ser:

 30 21 * * *  rsync /home/user/folder_name -r /home/user/public

Para mais informações sobre o crontab, procure aqui ou use man crontab.


Eu provavelmente usaria montagens de ligação como @PerlDuck, pois é uma maneira fácil e sustentável de fazer isso. Eu não usaria cronjobs, pois isso pode levar a todos os tipos de problemas de desempenho em sua máquina se você acabar sincronizando uma pasta em vários locais e os arquivos na primeira pasta forem muito grandes ou numerosos. Minha empresa está usando essa abordagem para simular o comportamento do Dropbox / Drive e agora que alcançamos um grande número de arquivos, alguns deles com GB de tamanho, a solução simplesmente não aumenta mais.
— amigável

2
Este é dois diretórios, não um.
— rage
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.