Uma pasta com dois locais diferentes no Ubuntu 18.04

Uma pasta com dois locais diferentes no Ubuntu 18.04

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

Como posso fazer isso acontecer?

Responder1

Conforme 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 -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 para mover um arquivo) enquanto mantém pressionada uma tecla modificadora (CTRL + SHIFT).

Exemplo de uso de 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

Responder2

Usarvincular montagens.

Suponha que você tenha um diretório existente /home/pandey/originale queiraespelhopara /home/pandey/mirrorque tudo o que você fizer em qualquer um deles seja feito automaticamente no outro também.

Isso não requer sincronização ou cópia entre os dois diretórios. Amontar montagemé apenas mais umvisualizarpara o diretório original e o que acontece em um também acontece no outro.

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

    mkdir /home/pandey/mirror
    
  2. montagem de ligaçãoo diretório original para o caminho recém-criado. Isso requer acesso root:

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

Para desfazer isso, basta

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

Veja também esta pergunta e sua excelente auto-resposta no stackexchangesobre montagens de ligação.

Responder3

Você pode fazer isso definindo um trabalho crontab:

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

Você pode inserir o comando que deseja executar lá, para poder copiar todos os arquivos da pasta para outra pasta. Por exemplo, se você deseja copiar todos os arquivos para /home/user/folder_namevocê /home/user/publicdeve inserir este comando em 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 21h30 todos os dias, sua edição deve ser:

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

Para mais informações sobrecrontabolharaquiou usar man crontab.

informação relacionada