К вашему сведению, Shairport Sync теперь может передавать аудиопоток напрямую без использования устройства обратной связи ALSA. Вы можете скомпилировать его для вывода звука в канал или на стандартный вывод.
ln
выглядит следующим образом:
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
Без -T
, если LINK_NAME
уже существует и является каталогом (или символической ссылкой, подтвержденной для окончательного разрешения в каталог ), первая и третья формы неоднозначны, и ln
выбирает третью форму. :он создает ссылку внутри каталога. Таким образом
ln -s ~/www/project /var/www/html/project
создаст ссылку с именем project
внутри /var/www/html/project
, если последняя уже существует.
-T
устраняет двусмысленность и заставляет ln
рассматривать только первую форму :если ссылка не существует, ссылка создается как именованная; если уже существует файл или каталог с заданным LINK_NAME
, ln
завершается с ошибкой (, если -f
не указано слишком ).
Так
ln -sT ~/www/project /var/www/html/project
гарантирует, что вы получите либо ссылку /var/www/html/project
, указывающую на ~/www/project
, либо сообщение об ошибке (и не -нулевой код выхода ).
Это гарантирует, что ваш путь (в вашем примере/var/www/html/project
)является конечным путем, поэтому ссылка будет на 100% /var/www/html/project
, а не /var/www/html/project/**project**
, если /var/www/html/project
существует...
Поскольку это может сбить с толку, покажу пример различия
Настройка :cd /tmp
; mkdir /tmp/aa
; mkdir /tmp/bb
;
ln -s /tmp/aa /tmp/bb
приведет к новой символической ссылке/tmp/bb/aa -> /tmp/aa
тогда как
ln -sT /tmp/aa /tmp/bb
приведет кln: failed to create symbolic link '/tmp/bb': File exists
параметр -s
тут ни при чем. Это (как обычно )объясняется в документах:https://www.gnu.org/software/coreutils/manual/html_node/Target-directory.html