How to hide files and directories in Linux

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'

Linux / Unix: Find And List All Hidden Files Recursively

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 -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

Click to enlarge

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.

Show or hide all hidden files by pressing CTRL+H in Linux

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

For more information see my post “Linux Encrypt And Decrypt Files With A Password“.

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

RelatedHow do I Compress a Whole Linux or UNIX Directory?


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

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 1 comment so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersdf ncdu pydf
File Managementcat cp mkdir tree
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04

Comments on this entry are closed.

  • 🐧 Vivek Gite Jan 16, 2019 @ 15:52

    Somebody asked me about a password-protected zip file via email. I would suggest that you use gpg to encrypt tar balls. It offers stronger encryption and installed on Linux or Unix-like systems.

Comments are closed. Still have questions? Post it on our forum