Одна папка з двома різними місцями на Ubuntu 18.04


10

Я хочу мати одну і ту ж папку в двох різних місцях мого Ubuntu. Якщо я оновлюю щось в одному, воно також має оновлюватися в іншому місці.

Як я можу це зробити?


8
чи повинні ці 2 місця бути фізичними (як у 2х разів, займаючи місце) чи вони можуть бути посиланнями?
Rinzwind

19
A symbolic link- найпростіше рішення вашої вимоги і не залежить від привілеїв суперпользователя. man lnдля отримання додаткової інформації.
doneal24

Відповіді:


16

Використання прив'язки монтує .

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

Для цього не потрібно синхронізації чи копіювання між двома каталогами. Пов'язує кріплення просто ще один вид в вихідний каталог і то , що відбувається в одному і відбувається в інших.

  1. Створіть (як ваш користувач) новий каталог /home/pandey/mirror:

    mkdir /home/pandey/mirror
    
  2. прив’язати-змонтувати оригінальний каталог до новоствореного шляху. Для цього потрібен кореневий доступ:

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

Скасувати це просто

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

Дивіться також це питання та його неповторну самовідповідь на стеке обміну щодо прив'язки .


3
+1, напевно, цей шлях швидший, ніж я запропонував;
Codito ergo sum

13
Мав cd /home/pandey; ln -s original mirrorби такий же ефект і не вимагає прав судо ?
doneal24

19
Так, мені цікаво, чому люди пропонують ці кругові рішення, хоча це звучить як класичний випадок використання простого символьного зв'язку. Яка перевага? Наскільки я бачу, жодна з переваг, перелічених у згаданому питанні, здається, не застосовується тут.
Voo

5
@ doneal24 Я згоден: символічне посилання має такий же ефект з практичної точки зору і не вимагає кардинальних змін системи та привілеїв адміністратора.
ванадій

2
Пов’язане запитання про кріплення кріплення містить хороший список можливих випадків використання. Просто потрібен інший названий шлях до каталогу - це не один із них.
Дубу

44

Як зазначено в коментарях, але не як належна відповідь:

У багатьох випадках символічне посилання є найпростішим рішенням.

Їх можна легко створити в командному рядку (використовуючи 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

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.


Я, мабуть, використовую прив'язувати кріплення як @PerlDuck, це простий і бездоганний спосіб зробити це. Я б не користувався cronjobs, оскільки це може призвести до різного роду проблем з продуктивністю на вашій машині, якщо ви врешті синхронізуєте папку в декількох місцях, а файли в першій папці дуже великі або численні. Моя компанія використовує такий підхід для імітації поведінки Dropbox / Drive, і тепер, коли ми дійшли до великої кількості файлів, деякі з них мають розмір ГБ, рішення просто більше не масштабується.
nonameable

2
Це два каталоги, не один.
лють
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.