Хотите знать, где путь, который выглядит так, как «/../» будет указывать за пределами файла? Я предполагаю, что это может быть что-то вроде всегда указывать корневой каталог, а затем относительный родительский каталог для файла, в котором он был записан?
filesystems
path
Евгений Лай
источник
источник
/../
имеет смысл только если он находится внутри пути.Ответы:
Давайте разбивать
/../
по частямПервый
/
указывает на корень файловой системы. Это самый верхний уровень файловой системы...
означает родительскую папку Однако, поскольку мы находимся на самом верхнем уровне, мы не можем подняться выше, поэтому мы все еще находимся на самой верхней папкедобавление
/
в конце указывает на папку. Это никогда не является обязательным, если только не указан путь к папке или файлу. Таким образом, мы все еще находимся на самой верхней папке в файловой системе.Итак,
/../
ничем не отличается от набора текста/
источник
/example
это символическая ссылка на каталог,ls -l /example
будет отображаться символическая ссылка, тогда какls -l /example/
будет отображаться содержимое каталога.cd ../abc
то, где../
есть разница. Я думаю, что это полезно только для относительных путей, а не для абсолютных путей.../
может влиять на абсолютные пути:/foo/bar/../quux
=/foo/quux
. Еще несколько полезных примеров: 1) Понимая, что вы только что вошли в табуляцию, вы получили действительно длинное имя каталога, но это было не то, что вам нужно../
может быть быстрее, чем забой 50 раз. 2)foo=/long/absolute/path/to/foo; bar=$foo/../bar;
..
пути эвакуации при реализацииchroot
в качестве тюрьмы так же очевидно, как закрытие двери сарая, чтобы держать животных внутри; Вы не пропустите такой случай: самый очевидный путь к спасению. Это заставляет меня подозревать, что ранниеchroot
реализации, возможно, не имели неизбежности в качестве требования .