Що означають "." Та "..", коли знаходяться в папці?


34

коли я ls -aдля перегляду прихованих файлів в папці були 2 приховані файли , створені за замовчуванням , що є значення цих двох файлів .і ..?

ls -a

Виробляє

.  ..

Я їх дуже використовую, коли я це роблю, ls -laоскільки це покаже мені дозволи та права власності на каталог, в якому я перебуваю, та на каталог, вище того, в якому я перебуваю.
Marco Ceppi

у мене немає достатньої кількості представників, щоб проголосувати, щоб закрити, але я поставив прапор на це питання, оскільки це дуже багато запитань, на які можна відповісти за 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.
Azendale

htorque: ти, можливо, релігійна людина? :)
Жо-Ерленд Шінстад

Він знаходиться на Mac OS X (який працює як і будь-який інший Unix, хоча GUI приховує частину цього). Mac OS Classic їх не мав; ::використовувався для попереднього каталогу. Шляхи без :них були поточним каталогом. В іншому випадку очікувався повний шлях (починаючи з назви диска), компоненти якого розділені на :. Приклад:Macintosh HD:System Folder:Finder
derobert

4

Це жорсткі посилання на каталоги self (.) Та батьків (..). Вони створюються, коли ви створюєте каталог. Їх ніколи не можна видалити (не видаляючи вказаний ними каталог).

Якщо ви створюєте каталог:

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, а другий - на '.' з в / tmp / foo / вказуючи на себе.


2

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.