find command


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers find command
# 8  
Old 11-02-2001
Bug

<b>rm -f `find /tmp|grep t`</b> (note: you don't use * for grep'ing here)doesn't work exactly the way the question asked, but not for the reasons you brought up. The command will not remove directories unless you use the <b>-r</b> switch as well, and it certainly will remove files from <b>/tmp</b> as advertised. However, it will remove any file with a "t" in it. More correctly the command should be <b>rm -f `find /tmp|grep ^t`</b>. Note of course that anything that uses the find command will decend directories so anyting below the <b>/tmp</b> directory starting with a "t" will also be deleted. If you only want to delete in the <b>/tmp</b> directory then <b>rm -f /tmp/t*</b> is the correct procedure.Smilie
# 9  
Old 11-02-2001
Re: find /tmp -type f -regex .*\/t[^\/]*$ -exec rm {} \;

Quote:
Originally posted by Neo
From here, seems like Perderabo's"

find /tmp \( ! -name /tmp -prune \) -type f -name t\*....

However, This does not work for me either !!!! Smilie

Oppps! How about:
cd /
find tmp \( ! -name tmp -prune \) -type f -name t\*....

This time I tested it. I should know better than to post something like that without testing.

stuff like "rm t*" would seem to address the OP's original question until you notice the "-mtime" in his example.

Another concern is that "rm t*" will work only if there are a small number of files that start with t. Create 20,000 files that start with t in /tmp and now it will blow that max command line size on most versions of unix.

Quote:
Originally posted by Neo
rm -f `find -type f /tmp|grep t*

However, this also has problems because find returns the full path name so the syntax above will not work, seems to me
You need the path list as the first thing in a find command. So
rm -f `find /tmp -type f |grep t*`
will sort-of work. "grep t*" is going to match anything with zero or more t's in it, so that's not what we want. Also this will decend into subdirecties which is not what the op wanted.

This is nothing wrong with feeding full path names to rm except that it exacerbates the limited command line problem.

Once we have the find statement, rather than ending it with "-exec rm {} \;", I like "-print | xargs rm" which will fire up only as many rm processes as is needed rather than one per file. If someone does have 20,000 file that start with t, the difference is dramatic.
# 10  
Old 11-02-2001
Yes, thanks for pointing that out. I misread the original poster and thought the question was to recursively go down.... however, on second read, the problem was easier (not to go recursively down).

My apologies for working 'the wrong' problem and any confusion it may have caused. BUT, thanks for the puzzle. I enjoyed working the regex for the wrong problem Smilie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Is it possible to find the seek rate of the find command in Solaris?

Hello, I am running some performance based tests on Solaris, and I was wondering how fast the "seeking" rate of Solaris is, or how fast Solaris can get information about files with the "find" command. Does anyone know what 'find' command I could run to traverse through my system to see the rate... (1 Reply)
Discussion started by: bstring
1 Replies

2. Shell Programming and Scripting

Find multiple string in one file using find command

Hi, I want find multiple string in one file using find coomand. And keeping it in one variable.grep is not working. (5 Replies)
Discussion started by: vivek1489
5 Replies

3. Shell Programming and Scripting

How to use grep & find command to find references to a particular file

Hi all , I'm new to unix I have a checked project , there exists a file called xxx.config . now my task is to find all the files in the checked out project which references to this xxx.config file. how do i use grep or find command . (2 Replies)
Discussion started by: Gangam
2 Replies

4. Shell Programming and Scripting

Find, regular expression, anyway to simplify this find command?

Hello everyone, first post here, trying to learn scripting on my own and this forum as been really helpful so far. I made few little scripts working great but I m facing some problems with RE. I have a bunch of files in many subdirectories called *001.ext *002.ext OR simple *.ext or *01.ext... (7 Replies)
Discussion started by: Sekullos
7 Replies

5. Shell Programming and Scripting

what is the find command to find exact dir from the root

I want to find a dir called STOP from the root.so what is the find command. Thanks & Regards Rajkumar (1 Reply)
Discussion started by: rajkumar_g
1 Replies

6. Linux

Simplified find command to find multiple file types

Hi, I'm using the following command to find the multiple requierd file types and its working fine find . -name "*.pl" -o -name "*.pm" -o -name "*.sql" -o -name "*.so" -o -name "*.sh" -o -name "*.java" -o -name "*.class" -o -name "*.jar" -o -name "*.gz" -o -name "*.Z" -type f Though... (2 Replies)
Discussion started by: vickramshetty
2 Replies

7. Shell Programming and Scripting

find: No match due to find command being argument

I am using csh and getting the error "find: No match." but I cannot figure out why. What I am trying to do is set the find command to a variable and then execute the variable as a command. I ran it through a debugger and it looks like $FIND is getting set but the find command can not actually be... (2 Replies)
Discussion started by: mst3k4l
2 Replies

8. UNIX for Dummies Questions & Answers

how to find a file named vijay in a directory using find command

I need to find whether there is a file named vijay is there or not in folder named "opt" .I tried "ls *|grep vijay" but it showed permission problem. so i need to use find command (6 Replies)
Discussion started by: amirthraj_12
6 Replies

9. Shell Programming and Scripting

Little bit weired : Find files in UNIX w/o using find or where command

Yes , I have to find a file in unix without using any find or where commands.Any pointers for the same would be very helpful as i am beginner in shell scritping and need a solution for the same. Thanks in advance. Regards Jatin Jain (10 Replies)
Discussion started by: jatin.jain
10 Replies

10. Shell Programming and Scripting

command find returned bash: /usr/bin/find: Argument list too long

Hello, I create a file touch 1201093003 fichcomp and inside a repertory (which hava a lot of files) I want to list all files created before this file : find *.* \! -maxdepth 1 - newer fichcomp but this command returned bash: /usr/bin/find: Argument list too long but i make a filter all... (1 Reply)
Discussion started by: yacsil
1 Replies
Login or Register to Ask a Question