rm – How to Remove Files and Subdirectories of a Particular Folder

rm

I need to remove files and sub-directories in a particular folder but not that folder itself.

I am using below command:

find . -type d -depth -mtime +7 -exec rm -rf {} \;

But it throws following error message:

rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘.’

What should be the correct command I avoid or handle this error message? Is it happening because of option "-depth" in my find command?

Linux version:
NAME="Red Hat Enterprise Linux Server"
VERSION="7.1 (Maipo)"

Best Answer

If you have /path/to/folder, and would like to remove non-hidden files inside, but not that folder, just run:

rm -rf /path/to/folder/*

Note that this won't remove hidden files (ones starting with a dot).

And given that you have right permissions and don't need this folder on your system all the time, you can simply remove it and create a new empty folder:

rm -rf /path/to/folder; mkdir /path/to/folder
Related Question