Learn Linux Quickly
上QQ阅读APP看书,第一时间看更新

Hidden Files

The current directory . and the parent directory .. exist under each directory in the Linux filesystem. But how come we can't see them when we run the ls command?

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 19 14:20 hello.txt

As you can see, I even tried to run ls -l and still can't see the current directory or the parent directory.

You need to use the -a option with the ls command as follows:

elliot@ubuntu-linux:~/Desktop$ ls -a
. .. hello.txt

Hooray! Now you can see all the files. The -a option shows you all the files, including hidden files and of course you can use the full option name --all, which will do the same thing:

elliot@ubuntu-linux:~/Desktop$ ls --all
. .. hello.txt

It turns out that any filename that starts with . (a dot) is hidden.

Hidden filenames start with .

Any filename that starts with a dot is hidden. That's why current and parent directories are hidden.

To demonstrate further, go to your user home directory and run the ls command:

angela@ubuntu-linux:~$ ls 
Music

Now run the ls -a command:

angela@ubuntu-linux:~$ ls -a
. .. .bash_logout .bashrc Music .profile

You can now see the hidden files in your home directory! Notice all the hidden filenames start with a dot.