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

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

При нахождении в /каталоге и использовании ls -a результат будет содержать .и..

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

решение1

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

Каждый каталог содержит имена файлов точка и точка-точка ( .и ..), номера инодов которых соответствуют номерам каталога и его родительского каталога соответственно.[…]Программа mkfsинициализирует файловую систему таким образом, что .и ..корневой каталог имеют номер корневого инода файловой системы.

— Морис Дж. Бах (1986).Проектирование операционной системы UNIX. Прентис Холл. стр. 73

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

Итак, причина, по которой корневой каталог имеет (или, по крайней мере, что касается программ режима приложений,появляетсяиметь, как видно через API системы) ..запись, заключается в том, что многое основано на предположении, чтокаждыйкаталог имеет .., и то, что ..в корне находится цикл, можно использовать для определения того, что он находится в корне.

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

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

решение2

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

Связанный контент