Deleting empty directories using find


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Deleting empty directories using find
# 1  
Old 01-15-2010
Deleting empty directories using find

Hello, I'm submitting this thread, because I was looking a way to delete empty directories using find and I found a thread from 2007 that helped me. I have worked from that threat, but I found that the command sent would analyze original directory and may delete it to. I have come up with expanded find command so parent directory would no be analyzed and would no put it on risk of being delete. The main problem with this command is that child directories MUST not have the same name as parent directory.

This is the initial directory setup
Code:
> ls -R a
a:
total 8
w/
x/
y/
z/

a/w:
total 0
w.txt

a/x:
total 0
x.txt

a/y:
total 0
y.txt

a/z:
total 0

Now running the following Solaris command you may delete the "z" directory without putting in risk your "a" directory.
Code:
> find a  \( -name a -prune \) -o -depth -type d -exec echo Analize {} \; -exec rmdir {} 2>/dev/null \;
Analize a/w
Analize a/x
Analize a/y
Analize a/z

The result of the command would be like these:
Code:
> ls -R a
a:
total 6
w/
x/
y/

a/w:
total 0
w.txt

a/x:
total 0
x.txt

a/y:
total 0
y.txt

Please notice that "a/z" directory is no longer present and that "a" directory was not analyzed.

You may delete "-exec echo..." from the command line and it will produce same result, that part was just to demonstrate operation of the command.

My best regard and I hope this would be of help to some one.
# 2  
Old 01-15-2010
I hope it's OK, but I've changed the subject title to remove the "in Solaris" part, because I think this should work on just about any UNIX.

Thanks for sharing Smilie
# 3  
Old 01-15-2010
To delete empty directories under/top/level/dir using find:
Code:
find /top/level/dir/* -type d | xargs rmdir


Last edited by Scott; 01-15-2010 at 08:36 PM..
# 4  
Old 02-02-2010
Every day you learn something new. I would like to write a better command with the suggestion from jpradley. thanks for you suggestion. Using xargs is good you would only need to redirect standar error to /dev/null so you would not have the error message.

So having the initial directory structure from my first post I would re-write the command as:
Code:
> find a/* -type d -exec echo Analize {} \; -exec rmdir {} 2> /dev/null \;

This will produce the same result as spected and would not analize parent directory.

Againg thanks jpradley.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Empty Directories

Please help me. How i can find empty directories in solaris?? (4 Replies)
Discussion started by: FoDeGe
4 Replies

2. Shell Programming and Scripting

Find the directories and deleting with wild card

Hi Firends, I have requirement like find the directories in unix after my my deployment is done. generally my requirement as follows. /data/common/scripts is folder and it has multiple scripts in this path. I have taken the back up of scripts folder as below /data/common/0816_scripts... (4 Replies)
Discussion started by: victory
4 Replies

3. Shell Programming and Scripting

Deleting empty folders

Hey, I need help with writing a shell script that deletes empty folders..anyone? :) Thank you! (5 Replies)
Discussion started by: putukas
5 Replies

4. Homework & Coursework Questions

Find and delete empty files and directories

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Need to make a script, to remove all empty files and folders from current category. It also should show the name... (2 Replies)
Discussion started by: Itixop
2 Replies

5. UNIX for Dummies Questions & Answers

Deleting all rows with empty columns

I have a text file that looks like this: 1 rs523634 8.22486 1 1 rs585160 8.22488 1 rs497228 8.2249 1 1 rs600933 8.225 1 rs480106 8.22531 1 rs600199 8.22533 1 rs529015 8.22534 1 rs598894 8.22534 I want to delete the rows with empty... (2 Replies)
Discussion started by: evelibertine
2 Replies

6. SCO

Deleting a directory that is not empty

I know someone will probably laugh at this question, I probably knew the answer many years ago when I was doing this full time but here goes..... I have a directory that has many files and sub-directories in it, RMDIR will not delete a directory that is not empty so what is the command to... (1 Reply)
Discussion started by: moondogi
1 Replies

7. Shell Programming and Scripting

Deleting all empty files in sub directories with a command

Hello Friends, Im trying to delete empty files in subdirectories with a command. I can find them checking only one directory in each step and then show them with my command like below moreover i could not add removing part: ls -l */* | awk '{if ($5==0) printf "%3s %2d %s... (5 Replies)
Discussion started by: EAGL€
5 Replies

8. Shell Programming and Scripting

deleting empty files in a directory

Hello Gurus, I want to delete only empty files (files with 0 bytes) at once from the local directory. Rightnow I need to go through all the files one by one manually and check the empty files before deleting them. Is there any unix command that finds and deletes empty files in a directory?... (5 Replies)
Discussion started by: berlin_germany
5 Replies

9. Shell Programming and Scripting

Deleting the empty file

Hi, I have a TEST.dat file. As a clean up process, I have to delete the TEST.dat file if it is empty. Basically, I don't want to delete TEST.dat if it contains anything in it but want to delete TEST.dat if it contains any spaces or nothing in it. Is there a command to check if the file... (2 Replies)
Discussion started by: rkumar28
2 Replies

10. Shell Programming and Scripting

deleting the empty files

as of our requiremnt some x no of files will be created from a third party tool ,out of them one or two files will be empty i.e size is 0. so i want to remove those files which are empty. naming of the files which are created will be like this abc_.txt 0 size abc_1.txt 4000 size abc_2.txt... (1 Reply)
Discussion started by: srivsn
1 Replies
Login or Register to Ask a Question