Я хочу, чтобы одна и та же папка находилась в двух разных местах в моей Ubuntu. Если я обновляю что-то в одном, оно также должно обновляться в другом месте.
Как я могу это сделать?
Используйте bind mounts .
Предположим, у вас есть существующий каталог /home/pandey/original
и вы хотите отразить его до /home/pandey/mirror
, чтобы все, что вы делаете в одном из них, автоматически выполнялось и в другом.
Это не требует никакой синхронизации или копирования между двумя каталогами. bind mount - это просто еще одно представление для исходного каталога, и то, что происходит в одном, происходит и в другом.
Создать (как пользователь) новый каталог /home/pandey/mirror
:
mkdir /home/pandey/mirror
bind-mount исходный каталог для недавно созданный путь. Для этого требуется root-доступ:
sudo mount --bind /home/pandey/original /home/pandey/mirror
Наслаждайтесь.
Чтобы отменить это, просто
sudo umount /home/pandey/mirror
rmdir /home/pandey/mirror
См. Также этот вопрос и выдающийся ответ на него на stackexchange о bind-mounts .
Как указано в комментариях, но не как правильный ответ:
Во многих случаях символическая ссылка является самым простым решением.
Вы можете легко создавать их в командной строке (используя команду ln
с параметром -s
). Вы также можете легко создавать их с помощью графического интерфейса: большинство файловых браузеров (nautilus, ...) позволяют создавать символические ссылки с помощью перетаскивания (как для перемещения файла), удерживая клавишу-модификатор (CTRL + SHIFT).
Пример использования командной строки:
$ 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
Вы можете сделать это, установив задание crontab:
crontab -e
i
, чтобы активировать режим вставки вашего vim. редактор. Вы можете ввести команду, которую хотите выполнить, чтобы скопировать все файлы из папки в другую папку. Например, если вы хотите скопировать все файлы из /home/user/folder_name
в /home/user/public
, вы должны вставить эту команду в ваш файл crontab
:
rsync /home/user/folder_name -r /home/user/public
Это скопирует все файлы в желаемом интервале. Если вы хотите копировать все файлы каждый день в 21:30, ваше редактирование должно быть:
30 21 * * * rsync /home/user/folder_name -r /home/user/public
Для получения дополнительной информации о crontab посмотрите здесь или используйте man crontab
.