Zastanawiasz się, gdzie ścieżka wyglądająca tak „/../” wskazywałaby na zewnątrz pliku? Zgaduję, że może to być coś takiego jak zawsze określenie katalogu głównego, a następnie względnego katalogu nadrzędnego do pliku, w którym został zapisany?
filesystems
path
Eugene Lai
źródło
źródło
/../
ma sens tylko wtedy, jeśli jest to w obrębie ścieżki.Odpowiedzi:
Rozbijmy
/../
kawałek po kawałkuPierwszy
/
wskazuje katalog główny systemu plików. Jest to najwyższy poziom systemu plików..
oznacza folder nadrzędny Jednakże, ponieważ jesteśmy na najwyższym poziomie, nie możemy pójść wyżej, więc wciąż jesteśmy na najwyższym folderzedodanie
/
na końcu wskazuje folder. Nie jest to nigdy obowiązkowe, chyba że podasz ścieżkę lub plik podfolderu. Jesteśmy więc nadal w najwyższym folderze w systemie plików.Tak więc
/../
nie różni się od pisania/
źródło
/example
jest dowiązaniem symbolicznym do katalogu,ls -l /example
wyświetli dowiązanie symboliczne, podczas gdyls -l /example/
wyświetli zawartość katalogu.cd ../abc
np. gdzie../
robi różnicę. Wydaje mi się, że jest to przydatne tylko dla ścieżek względnych, a nie dla ścieżek bezwzględnych.../
może mieć wpływ na ścieżki bezwzględne:/foo/bar/../quux
=/foo/quux
. Kilka bardziej użytecznych przykładów: 1) uświadomienie sobie, że po prostu karta zakończyło się naprawdę długą nazwą katalogu, ale nie było to, czego chciałeś.../
może być szybsze niż cofanie 50 razy. 2)foo=/long/absolute/path/to/foo; bar=$foo/../bar;
..
drogi ewakuacyjnej, jeśli realizacjachroot
więzienia jest tak oczywista, jak zamknięcie drzwi stodoły, aby zatrzymać zwierzęta; nie przegapisz takiej sprawy: najbardziej oczywista ścieżka ucieczki. To prowadzi mnie do podejrzeń, że wczesnechroot
wdrożenia mogły nie mieć nieuniknionego wymogu .