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.