Другие уже объяснили, что .и что ..означает (текущий каталог и родительский каталог соответственно). Это относится ко всем путям.
Когда вы открываете терминал, вы обычно начинаете с вашего домашнего каталога: ~(который расширяется до /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, посмотрите соответствующий вопрос: