ryg

Команда терминала ln в Mac OS X

Синтаксис:

 ln [-Ffhinsv] source_file [target_file]
 ln [-Ffhinsv] source_file ... target_dir
 link source_file target_file

Описание:

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

Параметры:

-F Если целевой файл target_file уже существует и он является папкой, то он должен быть удален, чтобы было возможным создать ссылку. Параметр -F должен использоваться совместно с -f или -i. Если ни один из них не использован, то умолчанию будет принят параметр -f. Параметр -F не будет работать с -s.
-h Если параметры target_file или target_dir являются символическими ссылками, то не следовать по ним. Это полезно при использовании -f, чтобы заменить ссылки, указывающие на каталог.
-f Если целевой файл target_file  уже существует, то он должен быть отсоединен, чтобы ссылка могла существовать. Отменяет действие -i, если она описана в команде раньше.
-i В случае существования целевого файла target_file вывести подсказку в стандартное окно ошибок (stderr) и ждать подтверждения. Ответ 'y' или 'Y' даст команду отмены ссылки и создание новой. Однако параметр -i отменяет уже встретившиеся в командной строке -f
-n Аналогично -h, существует для обеспечения совместимости с другими версиями.
-s Создать символическую ссылку
-v Более подробный вывод об обработке файлов.
По умолчанию создаются жесткие ссылки. Жесткие ссылки ничем не отличаются от оригинальной записи в каталоге, указывающей на файл. Если представить, что файл это некий массив данных, размещенный на диске, то жесткая ссылка это указатель на данный массив данных. Вновь созданная жесткая ссылка и существующая запись на файл одинаково указывать на этот массив, и они могут отличаться только именем и местом нахождения в дереве каталогов. При перемещении файл из одной папки в другую меняется место размещения ссылки, а не массива данных.  Жесткие ссылки не могут быть ссылкой на папку и не могут находиться в разных файловых системах.

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

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

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

Если утилита вызывается как link, то указываются два обязательных параметра и ни один из них не может быть каталогом. Это простой синтаксис для создания жесткой ссылки.

Совместимость:

Не рекомендуется использовать в скриптах параметров -h, -i, -n и -v, они предоставлены для совместимости с версиями команды ln.
Параметр -F используется только в BSD системах и не рекомендуется для использования в переносимых скриптах.

Связанные команды:

cd - сменить рабочую папку
ls - вывести список файлов в папке
mkdir -создать папку
cp -скопировать файл
mv -перенести файл
rm - удалить файл
rmdir -удалить папку (папки)
Весь список команд terminal Mac OS X