Одна папка с двумя разными папками в Ubuntu 18.04

Я хочу, чтобы одна и та же папка находилась в двух разных местах в моей Ubuntu. Если я обновляю что-то в одном, оно также должно обновляться в другом месте.

Как я могу это сделать?

10
задан 25 June 2019 в 14:57

3 ответа

Используйте bind mounts .

Предположим, у вас есть существующий каталог /home/pandey/original и вы хотите отразить его до /home/pandey/mirror, чтобы все, что вы делаете в одном из них, автоматически выполнялось и в другом.

Это не требует никакой синхронизации или копирования между двумя каталогами. bind mount - это просто еще одно представление для исходного каталога, и то, что происходит в одном, происходит и в другом.

  1. Создать (как пользователь) новый каталог /home/pandey/mirror:

    mkdir /home/pandey/mirror
    
  2. bind-mount исходный каталог для недавно созданный путь. Для этого требуется root-доступ:

    sudo mount --bind /home/pandey/original /home/pandey/mirror
    
  3. Наслаждайтесь.

Чтобы отменить это, просто

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

См. Также этот вопрос и выдающийся ответ на него на stackexchange о bind-mounts .

16
ответ дан 25 June 2019 в 14:57

Как указано в комментариях, но не как правильный ответ:

Во многих случаях символическая ссылка является самым простым решением.

Вы можете легко создавать их в командной строке (используя команду 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
43
ответ дан 25 June 2019 в 14:57

Вы можете сделать это, установив задание 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.

1
ответ дан 25 June 2019 в 14:57

Другие вопросы по тегам:

Похожие вопросы: