Linux / UNIX: HowTo Empty Directory

by on September 20, 2011 · 8 comments· LAST UPDATED September 20, 2011

in

How do I empty a directory (delete all files) under Linux / Unix without deleting directory itself?

You can use the following commands:

[a] rm command - Delete one or more files or directories.

[b] find command - Find and delete all files from a specific directory.

Linux Empty Directory Using the rm Command

Consider the following directory structure:

	/tmp/
	|
	|------foo/
		|---file1
		|---file2
		|---file3

To delete all files from /tmp/foo/ directory (i.e. empty /tmp/foo/ directory), enter:
$ cd /tmp/foo/
$ rm *

OR
$ rm /tmp/foo/*

Delete All Files Using the Find Command

Consider the following directory structure:

	/tmp/
	|
	|------bar/
		|
		|---file1.txt
		|---file2.txt
		|
		|---subdir1/
		|	|---file1.doc
		|	|---file2.doc
		|
		|---subdir2/
			|---image1.jpg
			|---image2.png

To delete all files from /tmp/bar/ directory (including all files from subdirectories such as /tmp/bar/dir1), enter:
$ cd /tmp/bar/
$ find . -type f -delete

OR
$ find /tmp/bar/ -type f -delete
The above find command will delete all files from /tmp/bar/ directory. It will not delete any sub-directories.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 8 comments… read them below or add one }

1 Dan September 22, 2011 at 5:26 pm

How about:

rm -R /tmp/foo/*

To delete all files and subfolders?

Reply

2 nixCraft September 25, 2011 at 10:41 am

Hmm.. it is not about deleting subfolders. Just remove all files from all directories including subdirectories.

Reply

3 Ryan October 14, 2011 at 6:57 pm

Exaclty what I needed thanks. This works perfectly in a deploy script to clear the cache directories, on a push or pull.

For example if you use cakephp:

git pull origin master
find app/tmp/ -type f -delete

and your good to go!

Thanks

Reply

4 Julien December 23, 2011 at 12:43 pm

Also what I was looking for but I have to confirm that I really want to remove all the files one by one.
I found something to set this off with rmstarsilent or summat but it does not work. Any hint ?

Reply

5 H4fidzi December 29, 2011 at 7:07 am

rm -rf /tmp/foo/*

just add f option tu force delete the files.

Reply

6 Adam Ziaja December 31, 2011 at 1:40 am

rm -fR /tmp/foo/

Reply

7 Julien January 2, 2012 at 4:21 pm

Thanks, it really helps !

Reply

8 Sivasankaran October 25, 2013 at 1:26 pm

I got it. what i need.. thx

Reply

Leave a Comment

Tagged as: , , , , , , , , , , , ,

Previous Faq:

Next Faq: