Текущий каталог . и родительский каталог . . существуют в каждой директории в файловой системе Linux. Но почему мы не видим их, когда выполняем команду ls?
elliot@ubuntu-linux:~/Desktop$ pwd
/home/elliot/Desktop
elliot@ubuntu-linux:~/Desktop$ ls
hello.txt
elliot@ubuntu-linux:~/Desktop$ ls -l
total 4
-rw-r—r— 1 elliot elliot 37 Jan 21 14:20 hello.txt
Как видите, я даже пытался запустить команду ls —l и по-прежнему не вижу ни текущий каталог, ни родительский каталог.
Просто необходимо использовать опцию -a с командой ls следующим образом:
elliot@ubuntu-linux:~/Desktop$ ls -a
. .. hello.txt
Отлично! Теперь вы видите все файлы. Параметр -a отображает все файлы, включая скрытые, и, конечно же, вы можете использовать полное написание параметра —all, что сделает то же самое:
elliot@ubuntu-linux:~/Desktop$ ls —all
. .. hello.txt
Оказывается, что любое имя файла, начинающееся с . (точка) скрыто.
Имена скрытых файлов начинаются с .
Любое имя файла, начинающееся с точки, скрыто. Вот почему текущие и родительские каталоги скрыты.
Для дальнейшей демонстрации перейдите в домашний каталог вашего пользователя и выполните команду ls:
angela@ubuntu-linux:~$ ls
Music
Теперь выполните команду ls -a:
angela@ubuntu-linux:~$ ls -a
. .. .bash_logout .bashrc Music .profile
Теперь вы можете увидеть скрытые файлы в своем домашнем каталоге! Обратите внимание, что все скрытые имена файлов начинаются с точки.