Làm thế nào để bạn tạo một Liên kết cứng hoạt động trong OSX?


8

Ok, điều này có tôi đập đầu tôi. Trong OS X, để tạo một liên kết cứng, trong cửa sổ đầu cuối, bạn phải có khả năng chỉ cần gõ ...

ln a.txt b.txt

... Và điều này sẽ tạo ra một liên kết cứng từ a.txtđến b.txt. Đơn giản và thẳng tiến.

Khi tôi thực hiện câu lệnh đó, chắc chắn, trong Finder b.txtsẽ xuất hiện ngay bên cạnh a.txt. Tuy nhiên, ngay cả sau khi chỉnh sửa a.txtbằng TextEdit, b.txtvẫn có dữ liệu gốc! Nói cách khác, có vẻ như nó đã thực hiện một bản sao, không phải là một liên kết, cứng hay cách khác.

Làm cho không có ý nghĩa chết tiệt với tôi! Vì vậy, ai đó có thể cho tôi biết những gì tôi đang làm sai ở đây?


Làm thế nào để bạn chỉnh sửa nó?
dùng151019

Tôi chỉ cần mở tệp trong TextEdit và thêm một số văn bản. Tôi chỉ cắt và sao chép một khối nhiều lần. Trong Finder, 'A.txt' hiện có kích thước khác với 'b.txt' có nghĩa là trên thực tế chúng chỉ vào hai tệp (dữ liệu) khác nhau trên đĩa.
Đánh dấu A. Donohoe

Tò mò. Tôi chỉ thử điều này bằng cách sử dụng vi để chỉnh sửa các tập tin và liên kết vẫn tồn tại. Với TextEdit, khi bạn quan sát, nó bị hỏng.
khủng khiếp

2
Xem xét chỉnh sửa câu hỏi của bạn, cho rằng giả định của bạn là sai.
Daniel Beck

Các câu trả lời rõ ràng cho thấy rằng các liên kết cứng trên thực tế đang hoạt động; tiêu đề gợi ý khác. Đó chỉ là hành vi thay thế tệp của các ứng dụng OS X loại bỏ các liên kết cứng của bạn, đây là một vấn đề hoàn toàn khác.
Daniel Beck

Câu trả lời:


14

Lý do cho hành vi này khá đơn giản và nó liên quan đến cách các tệp được lưu trong hầu hết các ứng dụng Mac OS X: Nguyên tử.

Điều gì xảy ra là một bản sao của tệp được ghi vào khu vực tổ chức tạm thời, và sau đó được di chuyển để thay thế tệp gốc.

Điều này, khá tự nhiên, phá vỡ các liên kết cứng.


Vâng ... dường như là bất kỳ ứng dụng OS X nào sử dụng phương pháp tiếp cận dựa trên tài liệu của Cốc Cốc. Điều đó thực sự bốc mùi! Thay vào đó, tôi sẽ xem liệu tôi có thể thoát khỏi việc sử dụng các liên kết mềm (bí danh) không. Mặc dù không chắc chắn vì tôi đang chỉnh sửa DefaultKeyBinding.dict mà hệ thống sử dụng. Hy vọng nó đủ thông minh để theo liên kết. Chúng ta sẽ thấy!
Đánh dấu A. Donohoe

Thật vậy. Đây cũng là lý do tại sao chỉnh sửa các tệp cấu hình hệ thống Unix-y là một vấn đề khó khăn đối với các trình soạn thảo GUI OS X và dễ thực hiện hơn vi- không đủ để đặt quyền ghi trên tệp, bạn cũng cần thư mục!
Daniel Beck

BTW, các liên kết mềm không hoạt động, vì vậy tôi đoán tôi sẽ quay lại các bản sao tập tin sau khi lưu vào tất cả những nơi tôi cần. Stinx!
Đánh dấu A. Donohoe

@MarqueIV: symlink có thể hoạt động.
Williham Totland

đó là những gì tôi muốn nói Có thuật ngữ sai. Cụ thể đó là các ràng buộc quan trọng của OS X. Nó hy vọng tệp thực tế sẽ ở một vị trí cụ thể và không hoạt động với các liên kết tượng trưng. Tuy nhiên, nó hoạt động với các liên kết cứng, tuy nhiên như đã nêu, vì trình chỉnh sửa dựa trên tài liệu Cacao, tôi không thể chỉnh sửa tệp mà không phá vỡ các liên kết, vì vậy có vẻ như tôi phải dùng đến cách sao chép thủ công (hoặc cài đặt lại lên các liên kết cứng) sau khi tôi chỉnh sửa tài liệu. Không tối ưu, nhưng không có gì một kịch bản nhanh chóng sẽ không sửa chữa.
Đánh dấu A. Donohoe

3

Nếu xuất hiện, hãy xem mục này từ superuser , rằng đây là một tính năng của TextEdit. Vì vậy, phương pháp bình thường để tạo liên kết cứng là chính xác, nhưng TextEdit hoạt động theo cách phá vỡ điều này. (Liên kết nói rằng nó tạo một tệp mới và sau đó di chuyển nó qua tệp cũ sau khi chỉnh sửa.)


Vâng ... chỉ thấy điều đó trên SU ngay khi bạn đăng bài này. Nó không chỉ là TextEdit. Nó dường như là tất cả các ứng dụng dựa trên tài liệu. Stinks vì điều này có nghĩa là tôi không thể sử dụng các công cụ dựa trên tài liệu để chỉnh sửa các tệp được liên kết cứng.
Đánh dấu A. Donohoe

đó không chỉ là TextEdit, mà tất cả các ứng dụng dựa trên ca cao sử dụng kiến ​​trúc tài liệu, hầu hết đều làm được.
Đánh dấu A. Donohoe

2

Lưu ý rằng emacs cũng thể hiện hành vi này (gây sửng sốt!) Theo mặc định (trong tất cả các unix), nghĩ rằng nguyên nhân hơi khác nhau (đó là điều "an toàn" để làm trong các tình huống không gian đĩa rất thấp). Tuy nhiên, nó có thể được cấu hình theo nhiều cách.

Xem tài liệu cho make-backup-files(sử dụng C-h v make-backup-files) và cho

  • backup-by-coping
  • backup-by-coping-when-linked
  • backup-by-coping-when-mismatch
  • backup-by-coping-when-privileged-mismatch
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.