Жесткая ссылка на файл не работает должным образом на OS X - PullRequest
2 голосов
/ 15 февраля 2012

У меня есть файл в папке, и я ничего не знаю об этом файле (как он генерируется и обновляется), потому что он исходит из приложения, работающего в моей системе, исходный код которого у меня отсутствует.

Формат файла явно json, и я успешно создал жесткую ссылку на него (с помощью команды оболочки ln file hardLinkToFile) и поместил его в другой каталог.
На этом этапеЯ проверяю файлы «2», и они точно такие же, как и ожидалось, но когда я выполняю в приложении действие, которое вызывает обновление исходного файла, жесткая ссылка не обновляется.

Любая идеяо том, как я могу решить эту проблему?

ОБНОВЛЕНИЕ : Как указано Влад Лазаренко и mvds файл, вероятно, будет удален иновый создан, есть ли что-то, что я могу сделать, чтобы получить решение, эквивалентное жесткой ссылке, о которой я думал изначально?

Ответы [ 4 ]

2 голосов
/ 15 февраля 2012

Если жесткая ссылка не обновляется, это означает, что приложение удаляет старый файл и создает новый. Таким образом, у вас все еще есть печатная копия предыдущего файла, но новый файл имеет совершенно другой индекс, хотя путь остается тем же. Вы можете проверить это, просто изменив содержимое этого файла самостоятельно - ссылка должна обновиться.

1 голос
/ 13 марта 2014

@ Влад и Франческо.Это действительно так.Я проверил, что vi оставляет неизменным inode, и оба файла src и dest изменены, в то время как, например, редактор kate не делает, и я разозлился, чтобы понять, почему изменения, которые я сделал в файле src, не были также в файле dest,Вы можете легко проверить это командой ls -li srcfile destfile перед тем, как редактировать одну из них в каждом редакторе, о котором я упоминал.Кстати, нехорошо, что жесткая ссылка зависит от приложения

1 голос
/ 15 февраля 2012

Я получаю такое же поведение в TextEdit, но не в TextMate. Я подозреваю, что это связано с контролем версий, встроенным в архитектуру документов OS X Lions. TextEdit использует управление версиями, а TextMate - нет. Скорее всего, эта функция заменяет файл, а не изменяет его, как описано @Vlad Lazarenko.

0 голосов
/ 07 февраля 2013

Полагаю, уже слишком поздно ... В любом случае, случайно я обнаружил, что, если вы измените приложение по умолчанию для файла, жесткая ссылка будет отделена от исходного файла. Даже если вы нажмете изменить все и не будете относиться к этому конкретному файлу.

...