Як створити робочу жорстку посилання в OSX?


8

Добре, це мене стукає головою. В ОС X, щоб створити жорстке посилання, у вікні терміналу ви повинні просто ввести це ...

ln a.txt b.txt

... і це повинно створити міцне посилання від a.txtдо b.txt. Простий і прямий вперед.

Коли я виконую це твердження, досить впевнено, у Finder b.txtз'являється прямо поруч a.txt. Однак навіть після редагування a.txtза допомогою TextEdit b.txtвсе ще є оригінальні дані! Іншими словами, схоже на те, що вона виконала копію, а не посилання, жорстке чи інше.

Не має для мене проклятого сенсу! То чи може хтось сказати мені, що я тут роблю неправильно?


Як ви це редагуєте?
користувач151019

Я просто відкриваю файл у TextEdit і додаю текст. Я просто вирізав і скопіював блок знову і знову і знову. У Finder "A.txt" тепер має інший розмір, ніж "b.txt", тобто вони насправді вказують на два різні (дані) файли на диску.
Марк А. Донохое

Цікавий. Я просто спробував це за допомогою vi для редагування файлів, і посилання зберігається. З TextEdit, як ви спостерігаєте, він ламається.
нудне

2
Подумайте відредагувати своє питання, враховуючи, що ваші припущення були невірними.
Даніель Бек

Відповіді чітко показують, що жорсткі зв’язки насправді працюють; назва говорить про інше. Це лише інтерактивна поведінка програм OS X, що позбавляється від ваших жорстких посилань. Це зовсім інша проблема.
Даніель Бек

Відповіді:


14

Причина такої поведінки досить проста, і вона стосується того, як зберігаються файли в більшості програм Mac OS X: Atomically.

Що відбувається, так це те, що копія файлу записується у тимчасову область постановки, а потім переміщується на заміну вихідного файлу.

Це, цілком природно, порушує міцні зв’язки.


Так ... здається, є будь-які програми OS X, які використовують підхід, заснований на документах Cocoa. Це справді смердить! Я побачу, чи можу я замість цього скористатися софт-посиланнями (псевдонімами). Не впевнений, тому що я редагую DefaultKeyBinding.dict, який використовує система. Сподіваємось, це досить розумно, щоб перейти за посиланням. Побачимо!
Марк А. Донохое

Такий справжній. Ось чому редагування файлів конфігурації системи Unix-y - це біль у редакторах графічного інтерфейсу OS X, і це набагато простіше в виконанні vi- недостатньо для встановлення дозволів на запис у файл, вам також потрібна папка!
Даніель Бек

BTW, софт-посилання не працює, тому я думаю, що я повернувся до створення копій файлів після збереження в усіх потрібних для цього місцях. Stinx!
Марк А. Донохое

@MarqueIV: символьні посилання можуть працювати.
Вілліхам Тотланд

ось що я мав на увазі. Помилився термін неправильно. Зокрема, це стосується основних прив'язок ОС X. Він очікує, що фактичний файл знаходиться у певному місці та не працює із символьними посиланнями. Однак це працює з жорсткими посиланнями, проте, як зазначено, оскільки редактор заснований на документі на какао, я не можу редагувати файл, не порушуючи посилання, тому схоже, що я повинен вдатися до копіювання вручну (або повторної настройки після жорстких посилань) після редагування документа. Не оптимально, але нічого швидкого сценарію не виправити.
Марк А. Донохое

3

Якщо з'являється, перегляньте цей запис від суперпользователя , що це особливість TextEdit. Отже, звичайний метод створення жорстких посилань правильний, але TextEdit веде себе таким чином, щоб зламати це. (Посилання говорить, що він створює новий файл, а потім переміщує його над старим файлом після редагування.)


Так ... просто побачив це на SU справа, коли ви розміщували це. Це не лише TextEdit. Здається, це всі програми на основі документів. Сміється, бо це означає, що я не можу використовувати інструменти на основі документів для редагування жорстких пов'язаних файлів.
Марк А. Донохое

це не лише TextEdit, а всі програми на основі какао, які використовують архітектуру документів, що більшість з них.
Марк А. Донохое

2

Зауважте, що emacs також демонструє цю (дивовижну!) Поведінку за замовчуванням (у всіх оніміксах), вважаючи, що причина дещо інша (це "безпечне", що потрібно робити в ситуаціях з дуже низьким дисковим простором). Однак це можна налаштувати кількома способами.

Дивіться документацію щодо 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.