Poniżej znajduje się mój kod do tworzenia dowiązania symbolicznego katalogu:
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
Już utworzyłem katalog /etc/nginx
. Chcę tylko, aby zawartość katalogu źródłowego ( /usr/local/nginx/conf/
) znajdowała się w zawartości katalogu docelowego ( /etc/nginx
). Ale kiedy wykonuję kod, /etc/nginx
zawiera on katalog o nazwie conf
zamiast zawartości conf
. Ten katalog zawiera zawartość, której chcę, ale w niewłaściwej lokalizacji.
Dlaczego umieścił katalog w folderze docelowym, a nie tylko zawartość katalogu w folderze docelowym?
bind mount
funkcji linux . przykładOdpowiedzi:
Jest to zachowanie,
ln
jeśli drugi argument jest katalogiem. Umieszcza link do pierwszego arg wewnątrz niego . Jeśli chcesz/etc/nginx
być dowiązaniem symbolicznym, najpierw usuń ten katalog i uruchom to samo polecenie.źródło
Jest
ln
to udokumentowane, gdy cel już istnieje i jest katalogiem. Jeśli chcesz/etc/nginx
, aby być dowiązania symbolicznego zamiast zawierać dowiązania symbolicznego, trzeba było nie lepiej stworzyć go jako katalog pierwszy!źródło
W skrypcie przydatne jest coś takiego:
zapobiega ponownemu utworzeniu „złego” zapętlonego dowiązania symbolicznego po ponownym uruchomieniu skryptu
źródło