Як ви змонтуєте локальний каталог?


16

У linux однією з найкращих речей, які ви могли зробити (зокрема, для розробників) було встановити папку та локально прив’язати її до іншої папки в системі.

Це мало перевагу перед символьними посиланнями через те, що такі інструменти, як Git, не визначили його як різний тип вузла, і вам не потрібно було видаляти оригінальний вміст. Закінчивши, ви можете просто відключити, і вам залишився вихідний вміст файлової системи.

Однак, mount -bindабо mount.local, здається, не існує Mac (станом на ОС X 10.10.2, Yosemite).

Як ти йдеш про це?

Відповіді:


10

Як згадував інший користувач у StackOverflow , ви можете використовувати кріплення NFS для цього. Однак для цього потрібно трохи одноразово налаштувати.

Спочатку вам потрібно буде налаштувати /etc/exportsфайл (якщо ви цього ще не зробили).

$ sudo tee -a /etc/exports <<< "/ -alldirs -mapall=$USER localhost"

По- друге, вам потрібно почати з Rpc і NFSD послуги.

$ sudo launchctl start com.apple.rpcbind
$ sudo nfsd start

Звідти дайте NFSd трохи прокинутися і поснідати, і ви повинні бути гарними:

$ sudo mount localhost:/path/to/target ./mnt

Щоб відновити оригінальний вміст, просто зробіть

$ sudo umount ./mnt

Я спробував встановити свій привід exfat usb$ sudo mount localhost:/Volumes/Aren/Movies /Users/me/Movies/
Necktwi

mount_nfs: can't mount /Volumes/Aren/Movies from localhost onto /Users/me/Movies: No such file or directory
Necktwi

Це добре, якщо я це роблю іншим способом!
Necktwi

Якщо ви отримали "Немає такого файлу чи каталогу", спершу спробуйте створити папку, до якої слід встановити місце призначення. Якщо ви отримаєте помилку "Відмовлено у дозволі", спробуйте "sudo nfsd перезапустити" (для мене nfsd вже був запущений, тому мені знадобилося перезапуск, щоб забрати нову лінію експорту, я думаю)
Нік

1
@JayGee Я ОП. На той час це працювало для мене, яку помилку має Git? Ви cdвидалили, а потім знову ввімкнули, перш ніж використовувати Git? Оболонки, як правило, працюють з дескрипторами файлів, які прив’язані до inodes, а не до повних рядкових шляхів - тому, якщо ви змонтуєтесь і перебуваєте в "тому ж" каталозі, оболонка все одно буде працювати, використовуючи базовий каталог замість змонтованого. Немає причини Git бачити щось встановленим - монтаж не працює так. Для всіх намірів і цілей це однотипний тип файлової системи.
Qix - МОНІКА ПОМИЛИЛА

10

Є ще один варіант - bindfs . Він вимагає встановити FUSE, але надає альтернативу використанню NFS.

Можливо, вам доведеться компілювати з джерела, але я бачу, що він доступний і в MacPorts .


2
Домашня мова: Встановіть osxfuse , тоді brew install homebrew/fuse/bindfs(випробувано на El Capitan; не потрібно sudoраніше bindfsдля кріплення, орієнтованого на користувача)
dhchdhd

Недоліком запобіжника є те, що він не підтримує ініціативні події. Якщо джерело оновлено, а додаток переглядає оновлення в пункті призначення, оновлення не отримуватиме.
вівторок

Крім того, для мене це трохи непросто, коли збираються речі в томі bindfs. Зокрема, я постійно отримую "занадто багато відкритих файлів" для одного конкретного проекту в Xcode без видимих ​​причин. Якщо я просто копіюю вміст без монтажу, він створює чудово.
Гришка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.