Làm thế nào để bạn gắn kết -bind một thư mục địa phương?


16

Trong linux, một trong những điều tuyệt vời bạn có thể làm (đặc biệt là cho các nhà phát triển) là gắn kết một thư mục và liên kết cục bộ nó với một thư mục khác trên hệ thống.

Điều này có lợi thế hơn các liên kết tượng do các công cụ thực tế như Git đã không phát hiện ra nó là một loại nút khác và bạn không cần phải xóa nội dung gốc. Khi bạn đã hoàn tất, bạn có thể đơn giản ngắt kết nối và bạn còn lại với nội dung hệ thống tập tin gốc.

Tuy nhiên, mount -bindhoặc mount.localdường như không tồn tại trên Mac (kể từ OS X 10.10.2, Yosemite).

Làm thế nào để bạn đi về điều này?

Câu trả lời:


10

Như được đề cập bởi một người dùng khác trên StackOverflow , bạn có thể sử dụng ngàm NFS để làm điều này. Tuy nhiên, nó đòi hỏi một chút thiết lập một lần.

Trước tiên, bạn sẽ cần thiết lập một /etc/exportstệp (nếu bạn chưa thực hiện).

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

Thứ hai, bạn sẽ cần phải bắt đầu các rpcnfsd dịch vụ.

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

Từ đó, cho NFSd một chút để thức dậy và ăn sáng, và bạn sẽ rất tốt để gắn kết:

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

Để khôi phục nội dung ban đầu, chỉ cần làm

$ sudo umount ./mnt

Tôi đã cố gắn ổ USB exfat của mình$ 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

Nó hoạt động tốt nếu tôi làm theo cách khác!
Necktwi

Nếu bạn nhận được "Không có tệp hoặc thư mục như vậy", hãy thử tạo một thư mục để gắn kết vào đích trước. Nếu bạn gặp lỗi "Quyền bị từ chối", hãy thử "sudo nfsd restart" (đối với tôi, nfsd đã được bắt đầu, vì vậy tôi cần khởi động lại để chọn dòng xuất khẩu mới, tôi nghĩ vậy)
Nick

1
@JayGee Tôi là OP. Nó làm việc cho tôi vào thời điểm đó, Git có lỗi gì? Bạn đã cded và sau đó quay trở lại trước khi sử dụng Git? Shell có xu hướng hoạt động với các bộ mô tả tệp được gắn với các nút, không phải là các đường dẫn chuỗi đầy đủ - vì vậy nếu bạn gắn kết và ở trong thư mục "giống nhau", shell sẽ vẫn hoạt động bằng thư mục bên dưới thay vì được gắn. Không có lý do gì Git sẽ thấy bất cứ điều gì như gắn kết - gắn kết không hoạt động như thế. Đối với tất cả ý định và mục đích, đó là cùng một loại hệ thống tập tin.
Qix - MONICA ĐƯỢC PHÂN PHỐI

9

Có một lựa chọn khác - bindfs . Nó yêu cầu bạn cài đặt FUSE nhưng cung cấp giải pháp thay thế cho việc sử dụng NFS.

Bạn có thể cần phải biên dịch từ nguồn nhưng tôi cũng thấy nó có sẵn trong MacPorts .


2
Homebrew: Cài đặt osxfuse , sau đó brew install homebrew/fuse/bindfs(Tested trên El Capitan, không có nhu cầu sudotrước bindfscho người sử dụng theo định hướng gắn kết)
dhchdhd

Nhược điểm của cầu chì là nó không hỗ trợ inotify sự kiện. Nếu nguồn được cập nhật, trong khi Ứng dụng xem các bản cập nhật ở đích, nó sẽ không nhận được cập nhật.
diimdeep

Ngoài ra, đó là một chút khó khăn đối với tôi khi biên dịch mọi thứ trong một khối lượng liên kết. Đặc biệt, tôi liên tục nhận được "quá nhiều tệp đang mở" cho một dự án cụ thể trong Xcode mà không có lý do rõ ràng. Nếu tôi chỉ sao chép nội dung mà không cần gắn kết, nó sẽ xây dựng tốt.
Grishka
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.