I tried using rm -rf .*
command to remove a hidden file and I am met with this error.
rm: refusing to remove '.' or '..' directory: skipping '.'
rm: refusing to remove '.' or '..' directory: skipping '..'
The terminal throws an error because rm
cannot delete the single dot and the double dots symbols.
These two symbols exist on each relative path, and represent the current working directory (.
) and the parent directory (..
).
The double dot, is mostly used to change your current working directory to the parent directory, when using the relative path.
For example, if your current working directory is /home/user
, by typing cd ..
, you will change your current working directory to /home
.
ls -A
in the directory holding the file you want to delete, what is the name of the file? Running yourrm -rf .*
will have deleted ALL files and directories starting with a dot (.
). If that was in your home directory you'll have now lost all your configuration files. Time to restore from your backup - if you had onerm -rf .*
does not remove "a hidden file" but all of them in your current working directory. And hidden directories, if any, recursively. Are you sure you want this? It's a pretty dangerous command that I don't recommend to ever execute. Remove only the exact files and directories you want to. Also maybe consider using an interactive file manager, such asmc
in terminals, or a graphical one.