find Search - Find files not matching a pattern

Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers find Search - Find files not matching a pattern
# 1  
Old 08-09-2013
find Search - Find files not matching a pattern

Hello all,

this is my first and probably not my last question around here. I do hope you can help or at least point me in the right direction.

My question is as follows, I need to find files and possible folders which are not owner = AAA group = BBB with a said location and all sub folders

with regards to the above, what would the syntax be and correct operator for -not the user & group? Also it would appear there is two requests I'd like the find command to do, How is this done?

The next stage will be to check the default file permissions for the owner = AAA because I think it is 660 and it needs to be 664 from the output produce from above query.

SunOS 5.10 Generic_127128-11

hanks in advance


Last edited by kilobyter; 08-09-2013 at 09:08 AM..
# 2  
Old 08-09-2013
Have you tried find . ! -group AAA? You know that you can group tests with parentheses?
# 3  
Old 08-12-2013
thanks for your reply

Ive notice the !, works a treat, thanks but im now trying to combine 2 find options and its not working? help please

find . ! -user AAA ! -group BBB > /output.txt

it don't appear to run the second command for find?

Ive tried

find . ! -user AAA ; find . ! -group BBB> /output.txt

when just running the find command with one option it runs correctly for group and user options, however when i try to run the find command with two options if doesn't report correctly, both didn't report errors! i need the find command to search both parameters, if that makes sense?

thanks in advance
# 4  
Old 08-12-2013
Hello and welcome kilobyter,

Your question also needs to clarify what logic do you want?

If you want to exclude files that are both user AAA and group BBB:-
find . ! -user AAA -o ! -group BBB

If you want to exclude files that are either user AAA or group BBB:-
find . ! -user AAA -a ! -group BBB

It all looks a bit backwards, but that's because of the negation you want. In the first, this would list a file that had owner CCC or group DDD because it doesn't matches one of the two criteria (i.e. not owner AAA or group BBB) Consider the four files:-
-rwxrwxrwx 1 AAA BBB 0 Aug 12 14:00 File1
-rwxrwxrwx 1 CCC BBB 0 Aug 12 14:00 File2
-rwxrwxrwx 1 AAA DDD 0 Aug 12 14:00 File3
-rwxrwxrwx 1 CCC DDD 0 Aug 12 14:00 File4

Which do you want?

If you want to see File2, File3 & File4, then use the "not or not" form.
If you want to see File4 only, use the "not and not" second form.

Does this help?

This User Gave Thanks to rbatte1 For This Post:
# 5  
Old 08-12-2013
You also can use parentheses (probably escaped) to group your tests, like ! \( -user AAA -a -group BBB \)
Reading man pages and some playing around usually helps!
This User Gave Thanks to RudiC For This Post:
# 6  
Old 08-12-2013
Thank you

find . ! \( -user AAA -a -group BBB \)

 find . ! -user AAA -a ! -group BBB

Both worked a treat!!

Now that I have all the paths, how can I list all credentials from these said paths i.e permissions, user, group.

would i use -exec ?
any help again greatly appreciated

Thank you all kindly

# 7  
Old 08-12-2013
Not sure what your OS will allow you to do. You can try
find . -name file -printf "%u %g %m %f\n"
user group 664 file
find . -name file -ls
260136    4 -rw-rw-r--   1 user group       169 Aug 12 17:32 ./file
stat -c "%U %G %a %n" file
user group 664 file

This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find: filename in every subdirectory matching a pattern

Hi, I have multiple directories built in following manner /app/red/tmp /app/blue/upd /app/blue/tmp /app/green/tmp /app/red/upd /app/green/upd I have filenames having pattern ONE.XXX.dat TWO.ZZZ.dat and so on across the folders listed above My objective is to list all filenames of a... (4 Replies)
Discussion started by: wahi80
4 Replies

2. UNIX for Dummies Questions & Answers

Find pattern suffix matching pattern

Hi, I am trying to get a result out of this but fails please help. Have two files /tmp/1 & /tmp/hosts. /tmp/1 IP=123.456.789.01 WAS_HOSTNAME=abcdefgh.was.tb.dsdc /tmp/hosts 123.456.789.01 I want this result in /tmp/hosts if hostname is already there dont want duplicate entry. ... (5 Replies)
Discussion started by: rajeshwebspere
5 Replies

3. Shell Programming and Scripting

Find all matching words in text according to pattern

Hello dear Unix shell professionals, I am desperately trying to get a seemingly simple logic to work. I need to extract words from a text line and save them in an array. The text can look anything like that: aaaaaaa${important}xxxxxxxx${important2}ooooooo${importantstring3}...I am handicapped... (5 Replies)
Discussion started by: Grünspanix
5 Replies

4. Shell Programming and Scripting

Help me to find files in a shell script with any matching pattern

Hi friends.. I have many dirs in my working directory. Every dir have thousands of files (.jsp, .java, .xml..., etc). So I am working with an script to find every file recursively within those directories and subdirectories ending with .jsp or .java which contains inside of it, the the pattern... (3 Replies)
Discussion started by: hnux
3 Replies

5. Shell Programming and Scripting

how to find files matching a pattern and zip

Hi, I want to find all directories matching given pattern in current directory and zip those files. I am trying to do somethign like this. But it is not working. for FNAME in $(find . -type d | grep './\{2\}-\{2\}$'); do zip -r $FNAME rm -fr $FNAME done ... (4 Replies)
Discussion started by: james423
4 Replies

6. Shell Programming and Scripting

To find files by matching a pattern in file name

Hi all, I have to check whether certain files exist using a if statement. I have to check this by matching a pattern of filename: e.g. if ] This statement should be "true" if any files like test.dat11, test.dat22 etc are present in the source dir. However, this statement is checking only... (2 Replies)
Discussion started by: sweety123
2 Replies

7. Shell Programming and Scripting

Using find command to search a pattern in group of files

Hi i am having a group of *.csh files under parent directory. Now i want to search a particular pattern in these group of *.csh files(suppose i need to search a pattern ABC - proj ). Can anyone please tell me how to do it using find command. Thanks in advance sarbjit (4 Replies)
Discussion started by: sarbjit
4 Replies

8. UNIX for Dummies Questions & Answers

find files NOT matching name pattern

Hi, I have following files in my directory: /TESTDONTDEL> ls -alt total 14 drwxr-xr-x 2 oracle dba 1024 May 15 06:30 . -rw-r--r-- 1 oracle dba 40 May 15 06:30 exception.txt -rw-r--r-- 1 oracle dba 19 May 15 06:22 ful_1234_test1.txt -rw-r--r-- 1... (2 Replies)
Discussion started by: sagarparadkar
2 Replies

9. UNIX for Dummies Questions & Answers

Find files matching a pattern

Hi, I am writing a BASH shell script. I would like to count all the files in the CURRENT directory matching a specific pattern. Could someone suggest the best/simplest way to do this. I have thought of these solutions (for simplicity the pattern is all files starting with A): ls -1 *A | wc -l... (5 Replies)
Discussion started by: msb65
5 Replies

10. Shell Programming and Scripting

Script to find file name for non matching pattern

Hi, I want to list only the file names which do not contain a specific keyword or search string. OS: Solaris Also is there any way ; through the same script I can save the output of search to a CSV (comma seperated) so that the file can be used for inventory purpose. Any assistance will... (5 Replies)
Discussion started by: sujoy101
5 Replies
Login or Register to Ask a Question