How to remove hidden files in Linux

I am a new Linux sysadmin and Ubuntu Linux user. How can I remove hidden files in Linux? How do I delete hidden files in Linux starting with . (dot) character?

Introduction: Linux and Unix like operating system allow users to hide files. By default, all hidden files not listed by the ls command. Any filename begins with a dot (.) becomes a hidden file. For example ~/.bashrc is a hidden file in Linux. Hidden files are often known as a dot file. All dot files used for storing user preferences on Linux. Please note that hidden or dot files are not a security mechanism. They exist to reduced “clutter” of the contents of a directory listing.

How to display hidden / dot files in Linux

One an display hidden files by passing the -a option to the ls command. For example:
ls -a
ls -la
ls -l /path/to/.filename

Linux display hidden files command
You can add a “/” after directory names in Linux:
ls -F
ls -Fa

One can get a reverse listing:
ls -r
ls -ra

To just display dot/hidden files in Linux use any one of the following command along with grep command/egrep command:
ls -a | egrep '^\.'
ls -A | egrep '^\.'
ls -l ~/.[^.]* | less
ls -ld ~/.[^.]*
ls -l ~/.??*
ls -ld ~/.??*

Just display hidden dot files in Linux with ls
See “Linux / Unix: Find And List All Hidden Files Recursively” for more info.

Command to remove hidden files in Linux

To remove hidden files in Linux, try:
rm .file
rm -i /path/to/.fileName
rm -i /path/to/.dirName
rm -rf /path/to/dir/.*

Of course, you can not delete two individual directories:

  1. . – The current directory indicated by a single dot.
  2. .. – The parent directory indicated by two successive dots.

Let us try out:
cd /tmp/
mkdir demo
cd demo
mkdir app
>.config
>.vimrc
>.bashrc
ls -a | egrep '^\.'
ls
rm .vimrc
ls -a | egrep '^\.'
rm -rfv /tmp/demo/.*

Delete or remove hidden files in Linux command

Getting rid of warning message rm: refusing to remove ‘.’ or ‘..’ directory: skipping

Simply add the following 2> /dev/null at the end of the rm command:
rm -rfv /dir/.* 2>/dev/null
rm -rfv /tmp/demo/.* 2>/dev/null

Sample outputs:

removed '/tmp/demo/.bashrc'
removed '/tmp/demo/.vimrc'

/dev/null is nothing but a special file that discards all data written to it. See the following for more info:

How to delete hidden files in Linux

One can use the find command to list or delete hidden files. The syntax is as follows:

## List all hidden dirs in /etc/ ##
find /etc/ -maxdepth 1 -type d -name ".*"
 
## List all hidden files in /etc/ ##
find /etc/ -maxdepth 1 -type f -name ".*"
 
## Find all hidden files in /tmp/data/ and delete it ##
find /tmp/data/ -maxdepth 1 -type f -name ".*" -delete
 
## Find all hidden files in /tmp/data/ (and it's sub-dirs) and delete it ##
find /tmp/data/ -type f -name ".*" -delete

See

A note about the GNOME desktop environment and hidden files

In GNOME’s file manager, the keyboard shortcut Ctrl+H enables or disables the display of hidden files. CTRL+H act as a toggle button to hide or show hidden dot files in the GNOME.

Gnome Hide or show hidden dot files
Gif.01: Gnome Hide or show hidden dot files using CTRL+H or options menu

An interesting footnote is that some files may have problematic names like files starting with a ‘-’ (minus symbol) and one can use ‘–’ as take everything from here as argument like this (from the manpages)

   To remove a file whose name starts with a '-', for example '-foo', use one of these commands:

          rm -- -foo

          rm ./-foo

It’s more common than one expect in daily sysadmin live to deal with these

Conclusion

This page explains how to remove hidden files in Linux or Unix-like operating systems. Further, it explained how to redirect output to avoid warning message while using the rm command.

  • remove hidden files
  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

How to Set Up a Mac for Your Kids

Providing children with access to a computer and the internet is increasingly important, but so...

How to Get Help With a Command from the Linux Terminal

Whether you’re an inexperienced terminal user or a grizzled veteran, you won’t always know the...

How to change the ssh port on Linux

To Change the SSH Port for Linux Server Connect to your server via SSH Switch to the root...

How To Install screenFetch in Linux

If you've browsed Linux groups on social media, you've probably seen a lot of screenshots that...

Static IP vs. Dynamic IP Address

A static IP address is one that remains fixed and never changes. The PC always sees the same...

Powered by WHMCompleteSolution