Хорошо, это заставляет меня биться головой. В OS X, чтобы создать жесткую ссылку, в окне терминала вы должны иметь возможность просто напечатать это ...
ln a.txt b.txt
... и это должно создать жесткую ссылку с a.txt
на b.txt
. Просто и прямо.
Когда я выполню это утверждение, конечно же, в Finder b.txt
появится рядом a.txt
. Тем не менее, даже после редактирования a.txt
с использованием TextEdit, b.txt
все еще есть исходные данные! Другими словами, похоже, что он выполнил копию, а не ссылку, жестко или иным образом.
Не имеет никакого смысла для меня! Так может кто-нибудь сказать мне, что я здесь делаю не так?
osx-snow-leopard
hardlink
Марк А. Донохо
источник
источник
Ответы:
Причина такого поведения довольно проста и связана с тем, как файлы сохраняются в большинстве приложений Mac OS X: атомно.
Что происходит, так это то, что копия файла записывается во временную промежуточную область, а затем перемещается для замены исходного файла.
Это, естественно, разрывает жесткие ссылки.
источник
vi
это - недостаточно установить права записи для файла, вам также нужна папка!Если появится, посмотрите эту запись от суперпользователя , что это особенность TextEdit. Таким образом, нормальный метод создания жестких ссылок является правильным, но TextEdit ведет себя так, чтобы это сломать. (Ссылка говорит, что он создает новый файл, а затем перемещает его поверх старого файла после редактирования.)
источник
Обратите внимание, что emacs также демонстрирует это (поразительное!) Поведение по умолчанию (во всех Unix-системах), хотя причина немного отличается (это "безопасная" вещь, которую нужно делать в ситуациях с очень небольшим дисковым пространством). Однако его можно настроить несколькими способами.
Смотрите документацию для
make-backup-files
(использованияC-h v make-backup-files
) и дляbackup-by-coping
backup-by-coping-when-linked
backup-by-coping-when-mismatch
backup-by-coping-when-privileged-mismatch
источник