Почему в каталоге / есть .. и что это значит?

В то время как в каталоге / и использовать ls -a, результат будет содержать . и ..

. Я могу понять существование ., который является указателем для самого каталога. , Что означает наличие .. в каталоге /, в то время как для / нет родительского каталога?

7
задан 26 December 2015 в 13:26

2 ответа

Много программного обеспечения работают над предположениями, не на самом деле гарантируемыми им POSIX.1, но традиционно случаем в системах UNIX и хранимый в большой литературе UNIX, это (для заключения в кавычки одной такой части литературы UNIX):

Каждый каталог содержит точку имен файлов и точечную точку (. и ..) чьи inode числа являются теми из каталога и его родительского каталога, соответственно. […] программа mkfs инициализирует файловую систему так, чтобы . и .. из корневого каталога имеют корень inode количество файловой системы. — Maurice J. Bach (1986). Дизайн Операционной системы UNIX. Prentice Hall. p. 73

Например: старое getcwd() библиотечная функция (в системах, которые не оказали специальной поддержки ядра для него) полагается на это для знания, когда прекратить прослеживать цепочку .. записи при создании имени текущего каталога. Это останавливается, когда это достигает каталога, который является его собственным родителем или не может пересечь к ...

Таким образом, причина, что корневой каталог имеет (или насколько программы прикладного режима затронуты, по крайней мере, кажется, как видела через систему API), a .. запись состоит в том, что много материала основано на предположении, что каждый каталог имеет .., и это .. в корне, являющемся циклом, может использоваться для обнаружения, что каждый в корне.

POSIX.1 на самом деле не гарантирует, что корневой каталог имеет a .., просто определение, что программы должны составлять возможность цикла, если существует a .. в корневом каталоге. Это должно разрешить системам не-UNIX быть совместимыми на POSIX также. Существуют файловые системы где отсутствие .. указывает, что каталог является корневым каталогом. И существуют, как сам Bach обсуждает, системы, где существует каталог выше корня, который POSIX.1 допускает в его обсуждении абсолютных путей, которые начинаются с двух наклонных черт (подобный Универсальному Соглашению о присвоении имен, используемому в системах локальной сети Microsoft).

Linux (и таким образом Ubuntu Linux), однако, обеспечивает более строгие гарантии парадигмы UNIX.

8
ответ дан 26 December 2015 в 13:26
  • 1
    Ну, " N:" часть означает it' s просто уведомление. Вы получаете " W:" предупреждения также. Фактические ошибки останавливают его функционирование. – Grizly 14 September 2016 в 02:29

Очень просто: посредством каталога файла, ./ средства эта папка , в то время как ../ средства , где файл (например, то, когда я нахожусь в каталоге user/home/me/Desktop, тогда ../, принесет мне к /user/home/me).

-1
ответ дан 26 December 2015 в 23:26
  • 1
    That' s, вероятно два ответы, но оба лучше, чем принятый ответ:-), – Auspex 4 June 2017 в 11:06

Другие вопросы по тегам:

Похожие вопросы: