Что означают “.” и “..” в папке?

Вопрос или проблема

Когда я использовал ls -a для просмотра скрытых файлов в папке, там было 2 скрытых файла, созданных по умолчанию. Каково значение этих двух файлов, . и ..?

ls -a

выводит:

.
..
<другие_файлы>

. это текущая папка.

.. это папка выше текущей папки – папка, которая содержит текущую папку.

Вы иногда увидите одну точку в использовании, когда кто-то хочет запустить скрипт из своей домашней директории. Например: ./install-app.sh. Это означает, что файл install-app.sh находится в текущей директории. Также было бы совершенно правильно написать /home/username/directory/install-app.sh. Тем же образом, вы также можете сделать ../install.app, если файл находится в родительской директории.

Причина, по которой это так, заключается не только в навигации, но и в том, что нельзя случайно скрыть системные приложения, просто неправильно назвав файл в вашей домашней директории.

Это жесткие ссылки на саму себя (.) и на родительскую (..) директории. Они создаются, когда вы создаете директорию. Их нельзя удалить (без удаления директории, на которую они указывают).

Если вы создадите директорию:

mkdir /tmp/foo

вы можете видеть, что на самом деле есть две жесткие ссылки на /tmp/foo:

drwxr-xr-x 2 michal michal 4096 2011-08-07 18:40 /tmp/foo
           ^---- две жесткие ссылки

Первая из директории /tmp/, указывающая на /tmp/foo, а вторая – это . внутри /tmp/foo/, указывающая на саму себя.

Также обратите внимание, что вы можете использовать ls -A (вместо ls -a), чтобы перечислить все файлы, включая скрытые файлы, но исключая директории . и ...

. текущая папка

.. родительская папка

.

Ответ или решение

Вопрос о значении файлов с названиями «.» и «..» в каталоге является важным аспектом понимания работы файловой системы. Эти символы не просто служат для обозначения скрытых файлов; они играют ключевую роль в навигации и структуре файлов в Unix-подобных операционных системах, таких как Linux.

Значение символа «.»:

Символ «.» представляет текущий каталог. Он используется для обозначения текущего местоположения в файловой системе. Это может быть полезно в различных сценариях, таких как выполнение исполняемых скриптов или приложений, находящихся в текущем каталоге. Например, если вы хотите запустить скрипт install-app.sh, расположенный в текущем каталоге, вы можете использовать команду:

./install-app.sh

Это указывает системе, что файл install-app.sh находится именно там, где вы сейчас находитесь.

Значение символа «..»:

Символ «..» обозначает родительский каталог — тот, который содержит текущий каталог. Это важная концепция, которая позволяет перемещаться вверх по иерархии файловой системы. Например, если вы находитесь в каталоге /home/username/documents, команда:

cd ..

переместит вас обратно в каталог /home/username. Так, с помощью «..» можно легко навигировать по структуре каталогов.

Жесткие ссылки и структура каталогов:

При создании нового каталога, например, с помощью команды:

mkdir /tmp/foo

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

Сравнение с командами «ls»:

Вам может быть полезно знать, что использование команды ls -a позволяет вам увидеть все файлы в каталоге, включая скрытые (начинающиеся с точки). Однако если вы хотите отобразить все файлы, исключая символы «.» и «..», используйте команду ls -A.

Заключение:

Символы «.» и «..» — это не просто абстракции, а важные инструменты для навигации и управления файлами в каталоге. Понимание их использования и концепции жестких ссылок способствует более эффективной работе с файловыми системами, улучшает навыки администрирования и повышает вашу продуктивность в работе с операционной системой. В конечном итоге, это знание способствует более глубокому пониманию работы с информационными технологиями в целом.

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

Оцените материал
Добавить комментарий

Капча загружается...