
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 ln
comando com -s
parâ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/original
e queiraespelhopara /home/pandey/mirror
que 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.
Crie (como seu usuário) o novo diretório
/home/pandey/mirror
:mkdir /home/pandey/mirror
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
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 digite
crontab -e
- Pressione
i
para 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_name
você /home/user/public
deve inserir este comando em seu crontab
arquivo:
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
.