Help with find in a script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with find in a script
# 8  
Old 03-15-2010
From the man page of find
Code:
       -prune The primary shall always evaluate as true; it shall  cause  find
	      not  to  descend	the current pathname if it is a directory.  If
	      the -depth primary is specified, the -prune primary  shall  have
	      no effect.
[...]
       -depth The primary shall  always  evaluate  as  true;  it  shall  cause
	      descent  of  the	directory  hierarchy  to  be  done so that all
	      entries in a directory are acted on before the directory itself.
	      If a -depth primary is not specified, all entries in a directory
	      shall be acted on after the directory itself. If any -depth pri-
	      mary  is specified, it shall apply to the entire expression even
	      if the -depth primary would not normally be evaluated.

# 9  
Old 03-15-2010
Quote:
Originally Posted by dsravan

..snip..

But my find is recursively going through all sub-directories. Is there a way to limit it to only the present directory.
Code:
-prune or -depth 1

primaries to find.

You may wish to use the -exec {} + form (or pipe to xargs) rather than the -exec {} ; that you have. Each call to -exec {} ; is a separate shell...

Also consider using -delete instead of -exec rm -rf {} \;

Be careful to quote properly so you are deleting the right files...
# 10  
Old 03-15-2010
prune is also displaying all underneath directories.

depth 1 is giving errors

Quote:
find: warning: you have specified the -depth option after a non-option argument -type, but options are not positional (-depth affects tests specified before it as well as those specified after it). Please specify options before other arguments.

find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
I tried

Quote:
find $IRC_PATH -type f -name "${3}*.gz" -mtime +"${4}" -prune -exec rm -rf {} \;

find $IRC_PATH -type f -name "${3}*.gz" -mtime +"${4}" -depth 1 -exec rm -rf {} \;
# 11  
Old 03-15-2010
-prune needs to refer to something, ie

Code:
find ~ -prune -print

prints just the name of your home directory.

Code:
find ~ -depth 0 -print

does the same but for a different reason. -prune says 'don't descend into the result of the result of the find' and -depth says 'whatever the path is, don't go lower than n'

In your example, this may give you what you expect (depending on the value of $IRC_PATH):

Code:
find $IRC_PATH -depth 1 -type f -name "${3}*.gz" -mtime +"${4}"  -exec ...

These are helpful links for find:

Examples of Usage of Unix Find Command
Unix find command helper
# 12  
Old 03-15-2010
Thanks Drewk. It worked.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with better find script

hi everyone i tried to write my first script on unix solaris the target is to find every file had size above 200M and save it to log file with size and path i can do this but i still don't like it #!/bin/bash find / type f -size +200M -ls | log.txt is there better way to do this !!... (3 Replies)
Discussion started by: mondo32
3 Replies

2. UNIX for Dummies Questions & Answers

Perl Script:how to find how many parameters are required to run the script

How to find how many parameters are required to run a Perl script? (1 Reply)
Discussion started by: Lakshman_Gupta
1 Replies

3. Shell Programming and Scripting

How to find a script?

I need to find the script named jip.sh how can i search it ? (13 Replies)
Discussion started by: rafa_fed2
13 Replies

4. Shell Programming and Scripting

Shell script to find the sum of argument passed to the script

I want to make a script which takes the number of argument, add those argument and gives output to the user, but I am not getting through... Script that i am using is below : #!/bin/bash sum=0 for i in $@ do sum=$sum+$1 echo $sum shift done I am executing the script as... (3 Replies)
Discussion started by: mukulverma2408
3 Replies

5. Shell Programming and Scripting

Need help to find script

Hello, I have a log file which is called datafile.info. This file contains data from a script but I can't find the script. I have tried to grep the file name but I am only getting the output files back. I have also tried find but no luck again. Is there a way to find the script... (2 Replies)
Discussion started by: INHF
2 Replies

6. Shell Programming and Scripting

Find script

Hello, as I'm doing my first steps in Linux I'm trying to create bash file that will search file\s in folders by using the Find command. can u help me with the script? it should be : myfind.sh thanx! (2 Replies)
Discussion started by: SimonBASH
2 Replies

7. Shell Programming and Scripting

Need help in a find script

i have a below script that will give me the filename along with the their size if the file size is more than 1 GB for j in `find /ednadtu3/u01/pipe -type f -size +1048576` do du -g $j done -------------------------------------------------------------------------- the above script is... (3 Replies)
Discussion started by: ali560045
3 Replies

8. Shell Programming and Scripting

Getting a script to find another script via lookup service

Hi, I'm trying to write a basic script which will measure throughput at a node on a network, and pass the results on to a manager script (running on another node on the same network). I presume that I need to use some sort of naming service, so that the manager can publish its location. From what I... (2 Replies)
Discussion started by: zeppelin147
2 Replies

9. Shell Programming and Scripting

a find script

I wrote this find script for all those questions about 'files created in the last three hours' and 'files created more than 2 minutes ago'. This script *will* recurse into subdirectories. As always, please suggest/make changes as you see fit. #!/usr/bin/ksh #set -x # unhash... (3 Replies)
Discussion started by: blowtorch
3 Replies

10. Shell Programming and Scripting

how to find Script file location inside script

I have to find out the file system location of the script file inside script. for example a script "abc.sh" placed anywhere in the file system when executed shold tell by itself the location of it. example #pwd / #./abc this is / #cd /root #./abc this is /root #cd / #/root/abc this... (10 Replies)
Discussion started by: asami
10 Replies
Login or Register to Ask a Question