Yerel bir dizini nasıl bağlarsınız?


16

Linux'ta yapabileceğiniz en iyi şeylerden biri (özellikle geliştiriciler için) bir klasör bağlamak ve yerel olarak sistemdeki başka bir klasöre bağlamaktı.

Git'in farklı bir düğüm türü olduğunu algılamaması ve orijinal içerikleri kaldırmanız gerekmediğinden, sembol bağlantılarına göre avantajı vardı. İşiniz bittiğinde, bağlantısını basit bir şekilde kaldırabilirsiniz ve orijinal dosya sistemi içeriğinden ayrıldınız.

Ancak, Mac'te (OS X 10.10.2, Yosemite'den itibaren) mevcut mount -bindveya mount.localgörünmüyor.

Bunu nasıl yapıyorsun?

Yanıtlar:


10

StackOverflow üzerinde başka bir kullanıcı tarafından belirtildiği gibi , buna bir NFS mount do kullanabilirsiniz. Ancak, biraz tek seferlik kurulum gerektirir.

İlk olarak, bir /etc/exportsdosya ayarlamanız gerekir (henüz yapmadıysanız).

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

İkincisi, gerekir başlatmak rpc ve nfsd hizmetleri.

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

Oradan, NFSd'ye biraz uyanıp kahvaltı etmesini sağlayın ve monte etmeniz iyi olmalıdır:

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

Orijinal içerikleri geri yüklemek için

$ sudo umount ./mnt

Exfat usb sürücümü monte etmeye çalıştım$ 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

Onun iyi çalışıyor Başka şekilde yaparsam!
Necktwi

"Böyle bir dosya veya dizin yok" alırsanız, önce hedefe eklenecek bir klasör oluşturmayı deneyin. "İzin Reddedildi" hatası alırsanız, "sudo nfsd restart" komutunu deneyin (benim için nfsd zaten başlamıştı, bu yüzden yeni dışa aktarma hattını almak için yeniden başlatılması gerekiyordu, bence)
Nick

1
@JayGee Ben OP. O zaman benim için çalıştı, Git'in ne hatası var? Eğer var cddışarı ed ve ardından yeniden Git kullanmadan önce? Kabuklar, tam dize yollarına değil, inode'lara bağlı dosya tanımlayıcılarıyla çalışma eğilimindedir - bu nedenle "aynı" dizine bağlanır ve kalırsanız, kabuk, takılı olan yerine temel dizini kullanarak çalışmaya devam eder. Git'in monte edilmiş bir şey görmesi için hiçbir neden yok - montaj bu şekilde çalışmıyor. Tüm niyet ve amaçlar için aynı dosya sistemi türüdür.
Qix - MONICA

10

Başka bir seçenek var - bindfs . FUSE ürününü yüklemenizi gerektirir, ancak NFS kullanımına bir alternatif sağlar.

Kaynaktan derlemeniz gerekebilir, ancak MacPorts'ta da mevcut olduğunu görüyorum .


2
Homebrew: osxfuse yükleyin , sonra brew install homebrew/fuse/bindfs(El Capitan üzerinde test edildi; kullanıcı odaklı montajlar için daha sudoönce gerek yok bindfs)
dhchdhd 5:05

Sigortanın dezavantajı, inotify olaylarını desteklememesidir. Kaynak güncellenirse, Uygulama hedefteki güncellemeleri izlerken izlerken güncelleme almaz.
diimdeep

Ayrıca bir cilt hacmi içinde bir şeyler derlerken benim için biraz sakat. Özellikle Xcode'da belirli bir proje için belirgin bir sebep olmadan sürekli olarak "çok fazla açık dosya" alıyorum. İçeriği monte etmeden kopyalarsam, iyi oluşturur.
Grishka
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.