Utwórz symboliczny link do katalogu w Ubuntu [zamknięte]


247

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/nginxzawiera on katalog o nazwie confzamiast 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?


Możesz także użyć plików (domyślna przeglądarka plików). Kliknij prawym przyciskiem myszy folder, który chcesz połączyć> opcję „Utwórz łącze”. Spowoduje to utworzenie folderu połączonego, który można przenieść i zmienić nazwę według potrzeb.
John Linhart

4
Użyj bind mountfunkcji linux . przykład
gkiko,

Odpowiedzi:



30

Jest lnto 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!


51
Twoja odpowiedź ma sens tylko w kontekście czytelnika, który zna już odpowiedź. Jest to bezużyteczne dla każdego, kto zadaje pytanie
Ricardo Saporta

1
Czy rzeczywiście mogę utworzyć dowiązanie symboliczne do katalogu głównego zamontowanego urządzenia USB (dlatego nie mogę najpierw usunąć tego folderu)?
Grigorij Korniłow

1
@GrigoryKornilov możesz utworzyć dowiązanie symboliczne do wszystkiego, co chcesz, w tym czegoś, co nie istnieje. To pytanie dotyczyło raczej miejsca, w którym tworzony jest dowiązanie symboliczne (a nie, gdzie wskazuje). Określona nazwa ścieżki w systemie plików jest albo zwykłym plikiem, albo katalogiem, albo dowiązaniem symbolicznym (albo jest gniazdem, potokiem lub urządzeniem). Nie może to być więcej niż jedna z tych rzeczy w tym samym czasie (tzn. Nie możesz mieć więcej niż jednego odrębnego pliku o dokładnie takiej samej nazwie).
Celada,

10

W skrypcie przydatne jest coś takiego:

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

zapobiega ponownemu utworzeniu „złego” zapętlonego dowiązania symbolicznego po ponownym uruchomieniu skryptu


1
Doskonały! To jest dokładne rozwiązanie. nie ma potrzeby tworzenia katalogu, jeśli już istnieje. To naprawdę dobra poprawka do twardego linku i zatopienia go w blackhole (/ dev / null)
Cosmo Arun
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.