10-20-2009
Remove only Empty Directories
I know this one was answered before in forum below -
https://www.unix.com/unix-dummies-que...d-command.html
But that one is closed & I have a question so here it goes.
I want to delete all 2006 files. Now if along with the files, if the folder is even older (2006) then it should be deleted as well - if it has all 2006 files.
so how I do it?
1) Deleted 2006 - old files. -- DONE without any issues.
2)
Delete All Empty folders left after Step #1
Quote:
find ./ -type d -depth -mtime +1052 –print| xargs rm –f
But here is what I get -
$: find ./ -empty -type d
find: bad option -empty
find: path-list predicate-list
I dont wanna experiment on my PROD environment with below command -
Quote:
find ./ -type d -exec rmdir 2>/dev/null {} \;
This ideally deletes all the directories but gives warning before deleting it. Tricking it is a good idea, but not sure how my OS will behave (Sun Solaris Unix).
Is writing a script only way to get it done in that case?!!
Anyhelp will be appreciated.
Thanks,
Ked[COLOR="#738fbf"]
Last edited by kedar.mehta; 10-20-2009 at 04:08 PM..
Reason: Trying to avoid bumping up the post
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi,
I want to produce a text file representing a list of empty directories on a unix system starting from a specified directory.
I hope I explained well my problem.
Thanks in advance. (7 Replies)
Discussion started by: N065956BM
7 Replies
2. UNIX for Dummies Questions & Answers
Is there a way you can identify directories that are empty? I do not need to remove them, I just need to identify them below a cetain path.
I have tried the following already and it returned everything for some reason.
#!/bin/sh
&& set -- .
find "$@" -type d -depth -print > dir.txt |... (2 Replies)
Discussion started by: dboard
2 Replies
3. UNIX for Dummies Questions & Answers
$ls -lrt mydir
total 12
drwxrwxrwx 2 nobody nobody 512 Aug 8 11:51 tmp
drwxrwxrwx 2 nobody nobody 4608 Jan 19 12:20 web.cache
$ ls -lrt mydir/web.cache/
total 0
$ ls -lrt mydir/tmp/
total 0
Can anyone explain me the above results? I know the o/p of ls, but this... (3 Replies)
Discussion started by: rahulrathod
3 Replies
4. Shell Programming and Scripting
Hi
Wrote the below script to identify the empty directories ,when executing the below showing that directory is not empty but the directories are empty.Please help to identify the empty directories
33 is not empty
33 is not empty
33 is not empty
33 is not empty
for file in `find .... (5 Replies)
Discussion started by: mohan705
5 Replies
5. Shell Programming and Scripting
Hi Gurus,
How to list directories that are non-empty and non-hidden
Thanks in advance (2 Replies)
Discussion started by: kinny
2 Replies
6. Shell Programming and Scripting
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... (3 Replies)
Discussion started by: lramirev
3 Replies
7. Shell Programming and Scripting
Hi.,
I have a script, in which I am processing a files present in the directory types.
ls -lrt | grep ^d | grep Dir_type | awk -f '{print $9}' |\
while read dir_name; do
#operations
done
where Dir_type is the pattern in which directories get created. How to filter out empty... (2 Replies)
Discussion started by: IND123
2 Replies
8. UNIX for Advanced & Expert Users
Hi Gurus,
I have command to delete more than 180days file.
find /home/abc/ -name "CBST_*.txt*" -mtime +180 | xargs -n 100 rm -f
Now I would like to delete more than 180days Non empty directory--What will be command?
Following is non empty directory as instance CBST2010* (2 Replies)
Discussion started by: thepurple
2 Replies
9. UNIX for Advanced & Expert Users
Hi,
I want to delete all empty directories in a long directore tree structure. I want to use that from a script that will run on HP-UX 11. My definition of empty directory is that there is no regular file under it and directly beneath it. To elaborate, I have below directories.
/app/dev/java... (14 Replies)
Discussion started by: asutoshch
14 Replies
10. UNIX for Beginners Questions & Answers
Please help me. How i can find empty directories in solaris?? (4 Replies)
Discussion started by: FoDeGe
4 Replies
LEARN ABOUT DEBIAN
shell-quote
SHELL-QUOTE(1p) User Contributed Perl Documentation SHELL-QUOTE(1p)
NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS
--debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.8.4 2005-05-03 SHELL-QUOTE(1p)