Что означают «.» И «..» в папке?


34

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

ls -a

Производит

.  ..

Я часто использую их, когда делаю это, ls -laтак как оно покажет мне разрешения и права собственности на каталог, в котором я нахожусь, и каталог выше того, на котором я нахожусь.
Марко Чеппи

Мне не хватает представителя здесь, чтобы голосовать, чтобы закрыть, но я поставил флажок на этот вопрос, так как на этот вопрос можно ответить в течение 3 секунд, выполнив поиск в Google (и потому что недавно было обсуждение вопросов, которые являются слишком легко на SO блоге).
zzzzBov

1
^ zzzzBov Спасибо на испанском языке за вашу щедрость.
mr_eclair

Ответы:


40

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

.. это папка над текущей папкой - папка, которая содержит текущую папку.

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


100% правильно. Думайте о них как о хуках, которые есть в каждом каталоге. Они используются исключительно для навигации. Вы обнаружите, что это не просто стандарт Linux, но также и для Windows. Вероятно, то же самое на Unix и Mac, но я никогда не играл ни в одной из командных подсказок.
Ctuchik

1
cd / ; cd ..: P
htorque

1
То же самое относится и к FreeBSD, так что я думаю, что это также относится и к Mac, поскольку Mac основан на Darwin BSD.
Азендейл

htorque: вы религиозный человек, возможно? :)
Джо-Эрленд Шинстад

Это на Mac OS X (которая работает так же, как любой другой Unix, хотя GUI скрывает некоторые из них). У Mac OS Classic их не было; ::был использован для предыдущего каталога. Пути без :в них были текущей директории. В противном случае ожидается полный путь (начиная с имени диска) с компонентами, разделенными символом :. Пример:Macintosh HD:System Folder:Finder
Дероберт

4

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

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

mkdir /tmp/foo

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

drwxr-xr-x 2 michal michal 4096 2011-08-07 18:40 /tmp/foo
           ^---- two hardlinks

первый из каталога / tmp / указывает на / tmp / foo, а второй - '.' с in / tmp / foo / указывая на него самостоятельно.


2

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.