Что означает путь «/../»?

17

Хотите знать, где путь, который выглядит так, как «/../» будет указывать за пределами файла? Я предполагаю, что это может быть что-то вроде всегда указывать корневой каталог, а затем относительный родительский каталог для файла, в котором он был записан?

Евгений Лай
источник
1
Родителем root является root, поэтому он такой же, как /
Sami Kuhmonen
1
Так ты имеешь в виду, что запись /../ - это то же самое, что / затем ...?
Евгений Лай
1
Да, это так. Вы не можете перейти к родителю root, поэтому он направлен на самого root
Сами Кухмонен,
3
Однако, см. Unix, разница между путями, начинающимися с '/' и '//' .
G-Man говорит: «Восстановите Монику»
/../имеет смысл только если он находится внутри пути.
Амани Килуманга

Ответы:

32

Давайте разбивать /../по частям

Первый /указывает на корень файловой системы. Это самый верхний уровень файловой системы.

.. означает родительскую папку Однако, поскольку мы находимся на самом верхнем уровне, мы не можем подняться выше, поэтому мы все еще находимся на самой верхней папке

добавление /в конце указывает на папку. Это никогда не является обязательным, если только не указан путь к папке или файлу. Таким образом, мы все еще находимся на самой верхней папке в файловой системе.

Итак, /../ничем не отличается от набора текста/

Keltari
источник
24
За исключением случаев, когда вы находитесь в chroot, а ядро ​​достаточно глючит, что такие уловки позволяют вам избежать chroot. (Думаю, раньше было много лет назад.)
user1686
8
Конечный слеш может быть значительным в некоторых случаях. Например, если /exampleэто символическая ссылка на каталог, ls -l /exampleбудет отображаться символическая ссылка, тогда как ls -l /example/будет отображаться содержимое каталога.
Flimm
Вы могли бы противопоставить cd ../abc то, где ../есть разница. Я думаю, что это полезно только для относительных путей, а не для абсолютных путей.
Бароп
1
@barlop ../может влиять на абсолютные пути: /foo/bar/../quux= /foo/quux. Еще несколько полезных примеров: 1) Понимая, что вы только что вошли в табуляцию, вы получили действительно длинное имя каталога, но это было не то, что вам нужно ../может быть быстрее, чем забой 50 раз. 2)foo=/long/absolute/path/to/foo; bar=$foo/../bar;
8bittree
1
@grawity Закрытие ..пути эвакуации при реализации chrootв качестве тюрьмы так же очевидно, как закрытие двери сарая, чтобы держать животных внутри; Вы не пропустите такой случай: самый очевидный путь к спасению. Это заставляет меня подозревать, что ранние chrootреализации, возможно, не имели неизбежности в качестве требования .
Каз