ln -s <source> <destination>
- destination ссылается на source. Если destination нет - команда заменяет его на .
и создает в текущей директории c таким же название == source.
-
Символическая (мягкая) ссылка - ссылаются на имя файла. Похож на ярлык из Windows.
-
Жесткая ссылка (синхронизированная копия) - ссылаются на место файла в жестком диске (точнее на его inode). Не умеют работать с папками. Нельзя сделать ссылку между разными файловыми системами.
Пример:
Жесткая ссылка всегда взаимно синхронизирована с родительским файлом (source).
Копия не зависит от изменений родительского файла (source).
ln -s source Folder/symbolicLink:
Видно, что символическая ссылка не открывается. Вся проблема в том, что команда начала выполняться внутри папки Folder/
и уже там пытается создаться на ./Folder/source
(но его там нет), тк source
== ./source
❗Поэтому правильным тоном является создание ссылки c абсолютным путем к каждому файлу:
ln -s ~/Desktop/source.txt ~/Desktop/Folder/symbolicLink
Некоторые приложения не способны переоткрыть файл (Open Recent?
) после изменения/перемещения/переименовывания, вам приходится открывать их заново.
Вся разница в функции UNIX управления файлами - inode
, которая является идентификатором для структуры данных, хранящей метаданные файла (владельца, разрешения, дата создания и тд). inode остается неизменной, независимо от того, как он назван или куда он перемещен.
Когда приложение открывает или сохраняет документ, оно использует путь к нему и имя файла - URL. Но лучшие приложения запоминают документы по серийным номерам inode
, поэтому, когда они хотят открыть их снова, они запрашивают у macOS файл с этим серийным номером. Более слабые приложения запоминают документы по их URL-адресам, поэтому, если какая-либо их часть изменится, они не смогут найти документ, чтобы открыть его снова.
Узнать inode
: ls -i file
1.3.3.1 Bash Theme | Back To iOSWiki Contents | 1.3.4 Chmod Theme