Создать символическую ссылку каталога в Ubuntu [закрыто]


ниже мой код для создания символической ссылки на каталог:

sudo ln -s /usr/local/nginx/conf/ /etc/nginx

Я уже создал каталог /etc/nginx. Мне просто нужно содержимое исходного каталога (/usr/local/nginx/conf/), чтобы быть в содержимом целевого каталога (/etc/nginx). Но когда я выполняю код,/etc/nginx содержится каталог с именем conf, вместо содержания conf. Этот каталог содержит содержимое, которое я хочу, но в неправильном месте.

почему он поместил каталог в цель папка, вместо того, чтобы просто поместить содержимое каталога в целевую папку?

3 228

3 ответа:

это поведение ln Если второй arg является каталогом. Он помещает ссылку на первый arg внутри. Если вы хотите /etc/nginx чтобы быть символической ссылкой, Вы должны сначала удалить этот каталог и запустить ту же команду.

что это ln документальное делать, когда цель уже существует и является каталогом. Если вы хотите /etc/nginx to быть символическая ссылка, а не содержат символическая ссылка, вам лучше сначала не создавать ее как каталог!

в скрипте полезно что-то вроде этого:

if [ ! -d /etc/nginx ]; then ln -s /usr/local/nginx/conf/ /etc/nginx > /dev/null 2>&1; fi

это предотвращает перед повторным созданием" плохой " циклической символической ссылки после повторного запуска скрипта