Skip to content

How to hide files and directories in Linux

3 min read

I am a new Linux user. How do I hide files and directories in Linux operating systems using the command line interface?

Introduction: In Linux and Unix-like systems, if a file or directory (folder) name starts with a period (.), then the file becomes hidden by default. To see all hidden files in Linux run ls -al command. This page shows how to hide files in Linux using various methods.

What is the difference between a hidden file and an ordinary file in Linux?

The main difference between a hidden file and an ordinary file is that the file name of a hidden file starts with a period or dot (.). Often known as dot files in Linux. The dot file is not a security feature. It is for your convenience and to reduce clutter in your home directory.

How to view hidden files in Linux

You can pass the -a options to the ls command to see hidden file:

ls -a
ls -al
ls -al | more
ls -al | grep 'bash'

 

How do I hide files and directories in Linux?

 

To hide a file or directory in Linux, rename it with a period (.) at the start of its name using the mv command. Say, you need to hide a file named foo.txt, run:

mv foo.txt .foo.txt

 

Verify by running the ls command:

ls
ls -al 

 

Let us create a new file in Linux named foo.txt for demo purpose

$ echo "Isolation doesn't bother me at all. It gives me a sense of security."> foo.txt
$ ls
$ mv foo.txt .foo.txt
$ ls
$ ls -al

 

Look ma files are hidden in GUI file managers too

Open folder or directories in your GUI file manager. Press CTRL+H to see or hide hidden files along with regular files.

 

How do I hide folders/directories in Linux?


Use the mv command by adding a . at the beginning of the directory name:

mv -v my-folder .my-folder
mv -v dir1 .dir1
mv -v dir2 .newdir2 

 

How do I unhide a file or folder in Linux?


To unhide a file called .foo.txt, rename it to foo.txt i.e. remove a dot/period . at the beginning of its name:

ls -la
mv -v .foo.txt foo.txt
mv -v .dir1 dir1
mv -v .newdir2 dir2
ls -l

 

How to hide and password protect my files

To encrypt a single file, use the gpg command as follows:

gpg -c foo.txt 

 

Now hide it:

mv -v foo.txt.gpg .foo.txt.gpg

 

Delete the original file in Linux using the rm command:

rm foo.txt
ls -la

 

To decrypt file use the gpg command again as follow:

gpg --output foo.txt --decrypt .foo.txt.gpg
rm .foo.txt.gpg 

 

How to compress and protect a folder in Linux using a password

 

Use the tar command to compress the whole folder named dir1 in the current working directory:

tar -cz dir1 | openssl enc -aes-256-cbc -e > dir1.tar.gz.enc

 

Hide it:

mv -v dir1.tar.gz.enc .dir1.tar.gz.enc

 

Delete the original directory in Linux using the rm command:

rm -rf dir1

 

To decrypt, run:

openssl enc -aes-256-cbc -d -in dir1.tar.gz.enc | tar xz

 

Conclusion

 This page demonstrated various ways to hide and use a password to protect files in Linux.

 

Related services

KVM VPS hosting

NVMe SSD and full root access, with Free Basic Managed Support.

Unmanaged dedicated servers

full root access and free IPMI KVM, with Free Basic Managed Support.

Linux server management

hardening, patching, monitoring and automation for Ubuntu, Debian, RHEL and AlmaLinux.

Was this answer helpful?

Still stuck? Open a ticket