Ok, to mnie kręci głową. W OS X, aby utworzyć twardy link, w oknie terminala, możesz po prostu wpisać ten ...
ln a.txt b.txt
... a to powinno stworzyć twardy link od a.txt
do b.txt
. Prosty i prosty.
Kiedy wykonuję to polecenie, z pewnością w Finderze b.txt
pojawia się obok a.txt
. Jednak nawet po edycji a.txt
za pomocą TextEdit b.txt
nadal ma oryginalne dane! Innymi słowy, wygląda na to, że wykonał kopię, a nie łącze, twarde lub w inny sposób.
Nie ma dla mnie żadnego sensu! Czy ktoś może mi powiedzieć, co robię źle tutaj?
osx-snow-leopard
hardlink
Mark A. Donohoe
źródło
źródło
Odpowiedzi:
Przyczyna takiego zachowania jest raczej prosta i dotyczy sposobu zapisywania plików w większości aplikacji Mac OS X: Atomowo.
Dzieje się tak, że kopia pliku jest zapisywana w tymczasowym obszarze przemieszczania, a następnie przenoszona w celu zastąpienia oryginalnego pliku.
To, naturalnie, zrywa twarde linki.
źródło
vi
- nie wystarczy ustawić uprawnienia do zapisu w pliku, potrzebujesz również folderu!Jeśli się pojawi, zobacz ten wpis od administratora , że jest to funkcja TextEdita. Tak więc normalna metoda tworzenia twardych dowiązań jest poprawna, ale TextEdit zachowuje się w taki sposób, aby to przerwać. (Link mówi, że tworzy nowy plik, a po edycji przenosi go na stary plik).
źródło
Zauważ, że emacs również domyślnie wykazuje takie (zaskakujące!) Zachowanie (we wszystkich systemach uniksowych), uważając, że przyczyna jest nieco inna (jest to „bezpieczna” rzecz w sytuacjach bardzo małej ilości miejsca na dysku). Można go jednak skonfigurować na kilka sposobów.
Zobacz dokumentację dla
make-backup-files
(użytkowaniaC-h v make-backup-files
) i dlabackup-by-coping
backup-by-coping-when-linked
backup-by-coping-when-mismatch
backup-by-coping-when-privileged-mismatch
źródło