02-24-2004
Throwing -prune into the find command is the answer, but a bit more detail is needed since -prune is rather confusing.
find /pc62/exports \( ! -name exports -prune \) ! -name "ABC*.Z" -name "*.Z" -mtime +1 -exec ls -l {} \;
is one solution. But it causes find to only look in directories named "exports". So something like /pc62/exports/exports/exports/something.Z would be found. The only perfect solution is to use "."
cd /pc62/exports
find . \( ! -name . -prune \) ! -name "ABC*.Z" -name "*.Z" -mtime +1 -exec ls -l {} \;
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
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
2. Shell Programming and Scripting
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
3. UNIX for Dummies Questions & Answers
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
4. Linux
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
5. Shell Programming and Scripting
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
6. Shell Programming and Scripting
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
7. Shell Programming and Scripting
Hi Friends,
Please help me to sort out this problem, I am running this in centos o/s and whenever I run this script I am getting "find: missing argument to `-exec' " but when I run the same code in the command line I didn't find any problem. I am using perl script to run this ... (2 Replies)
Discussion started by: ramkumarselvam
2 Replies
8. Shell Programming and Scripting
I need assistance with following requirement, I am new to Unix.
I want to do the following task but stuck with file creation date(sysdate)
Following is the requirement
I need to create a script that will read the abc/xyz/klm folder and look for *.err files for that day’s date and then send an... (4 Replies)
Discussion started by: PreetArul
4 Replies
9. Shell Programming and Scripting
Hello,
This is a bit complicated for me.
My scenario in MyFile:
Search string1,
When string1 is found, grep the line containing string1, go back over that line in upward direction and grep the first line containing string2.
Here is an example:
MyFile
His email address... (17 Replies)
Discussion started by: baris35
17 Replies
find(1) General Commands Manual find(1)
Name
find - find files
Syntax
find pathname-list expression
Description
The command recursively descends the directory hierarchy for each pathname in the pathname-list (that is, one or more pathnames) seeking
files that match a boolean expression written in the primaries given below. In the descriptions, the argument n is used as a decimal inte-
ger where +n means more than n, -n means less than n , and n means exactly n.
Options
-atime n Tests true if the file has been accessed in n days.
-cpio output Writes current file on output in the format (5120-byte records) specified in the reference page. The output can be either a
file or tape device. If output is a tape device the B key must be used to read data from the tape.
-ctime n Tests true if the file has been changed in n days.
-depth Always true; causes descent of the directory hierarchy to be done so that all entries in a directory are acted on before the
directory itself (that is, postorder instead of preorder). This can be useful when is used with to transfer files that are
contained in directories without write permission.
-exec command Tests true if specified command returns a 0 on exit. The end of the command must be punctuated by an escaped semicolon. A
command argument `{}' is replaced by the current pathname.
-group gname Tests true if group ID matches specified group name.
-inum n Tests true if the file has inode number n.
-links n Tests true if the file has n links.
-mount Tests true if the current file is on the same file system as the current starting pathname.
-mtime n Tests true if the file has been modified in n days.
-name filename Tests true if the filename argument matches the current file name. Normal Shell argument syntax may be used if escaped
(watch out for `[', `?' and `*').
-newer file Tests true if the current file has been modified more recently than the argument file.
-ok command Executes specified command on standard output, then standard input is read and command executed only upon response y.
-perm onum Tests true if file has specified octal number. For further information, see If onum is prefixed by a minus sign, more flag
bits (017777) become significant and the flags are compared: (flags&onum)==onum. For further information, see
-print Prints current pathname.
-size n Tests true if the file is n blocks long (512 bytes per block).
-type c Tests true if file is c type ( c = b, block special file: c, character special file: d, directory: f, plain file: l, sym-
bolic link: p, type port: s, type socket).
-user uname Tests true if file owner is login name or numeric user ID.
The primaries may be combined using the following operators (in order of decreasing precedence):
1) A parenthesized group of primaries and operators (parentheses are special to the Shell and must be escaped).
2) The negation of a primary (`!' is the unary not operator).
3) Concatenation of primaries (the and operation is implied by the juxtaposition of two primaries).
4) Alternation of primaries (`-o' is the or operator).
Examples
To remove all files named `a.out' or `*.o' that have not been accessed for a week:
find / ( -name a.out -o -name '*.o' )
-atime +7 -exec rm {} ;
To find all files on the root file system type:
find / -mount -print
To write all the files on the root file system to tape:
find / -mount -print -cpio /dev/rmt?h
cpio -iBvt < /dev/rmt?h
To find all the mount points on the root file system type:
find / ! -mount -print
Files
See Also
cpio(1), sh(1), test(1), cpio(5), fs(5)
find(1)