Другие уже объяснили, что .
и что ..
означает (текущий каталог и родительский каталог соответственно). Это относится ко всем путям.
Когда вы открываете терминал, вы обычно начинаете с вашего домашнего каталога: ~
(который расширяется до /home/username
). Все приведенные ниже пути эквивалентны, если ваш текущий рабочий каталог /home/username
:
/home/username
.
../username
../../home/username
../../../home/username
(родительский каталог /
все еще /
)
./././././.
(текущий каталог в текущем каталоге в ...)
./
(конечные косые черты разрешены для каталогов)
/home////username///
(и так многократные косые черты)
Вы не путайте ./program
с . program
. ./program
запускает файл в текущем каталоге с установленным битом выполнения. . ./program
это вещь bash и может быть записана так, source ./program
что она читает команды bash из program
файла в текущем каталоге и выполняет их в текущей оболочке.
Если вам интересно, почему вы можете просто запустить gedit
вместо, /usr/bin/gedit
а не program
вместо ./program
или /home/username/program
, посмотрите соответствующий вопрос: