Visit Our UNIX and Linux User Community


hiding output from find command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting hiding output from find command
# 1  
Old 01-12-2008
hiding output from find command

when I do the find command from / , there are a lot of directories that I do not have access to and so I get

"find: cannot open ..."

How can I suppress these messages so only what was found is output.

I was thinking on

Code:
find / -name 'searchterm' | grep -v find

but this doesnt work

Thanks
# 2  
Old 01-12-2008
If you use SH, then you can direct stderr, which is what is causing your "cannot open.." messages, to /dev/null and suppress it that way ie:
Code:
find / -name 'searchterm'   2> /dev/null

# 3  
Old 01-13-2008
Quote:
Originally Posted by redhead
If you use SH, then you can direct stderr, which is what is causing your "cannot open.." messages, to /dev/null and suppress it that way ie:
Code:
find / -name 'searchterm'   2> /dev/null

that is one way to do it. Thanks.

But just out of curiosity, why does the grep -v not find not work?

if we do

Code:
ls -ltr | grep -v find

then all the files containing find will not be shown.

If we do

Code:
find / -name 'filename' | grep -v find

then I would expect all lines returned with "find" on them being filtered out.

Why does this not happen?

Thanks.
# 4  
Old 01-13-2008
I believe its because the "find: cannot open ..."

is going to STDERR and

and you are piping the STDOUT to grep -v
rubio
# 5  
Old 01-13-2008
Quote:
Originally Posted by JamesByars
Code:
find / -name 'filename' | grep -v find

then I would expect all lines returned with "find" on them being filtered out.

Why does this not happen?

Thanks.
That's because only stdout is being piped to grep while stderr is being sent to the terminal. In order to exclude stuff using grep send stderr to the same place as stdout.

Code:
find / -name 'filename' 2>&1 | grep -v find

# 6  
Old 01-13-2008
that makes complete sense, thanks

Previous Thread | Next Thread
Test Your Knowledge in Computers #563
Difficulty: Medium
The comparison operators are only used for comparing numerical data types.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Find Memory and activity from command output

Hello - I have a requirement to get the Memory(Xmx) and the activity name using it. Sample input info : 1502 02:57 /bin/sh /opt/rather/bar/deploy/bar_run.sh 1545 02:57 java -Drather.repository=/opt/rather/bar/deploy/JobSyng_Barol_Count/JobSyng_Barol_Count/../lib -Xms1024M... (3 Replies)
Discussion started by: Varja
3 Replies

2. Shell Programming and Scripting

Better Align--output of find command

Hi, i have sh program which search for a file in a folder structure and provides its path. This is just used to see if that file exits more that once anywhere down the folder structure. I have used find command to search & printing it output on terminal. I have attached screen shot of it.... (10 Replies)
Discussion started by: praveenkumar198
10 Replies

3. Programming

Hiding commnd line arguments in ps command on Linux

Hi Unix lovers, I am trying to seek an explanation for a simple looking code - why it works? I found below program which hide command line argument in ps command. #include <string.h> int main(int argc, char **argv) { // process command line arguments.... // hide command... (4 Replies)
Discussion started by: shriashishpatil
4 Replies

4. Shell Programming and Scripting

Compare the output of find command

Hi All, I am trying to run find command in a script to list out certain files based on a patter. However, when there is no file in the output, the script should exit. Tried a couple of operators (-n, -z) etc but the script does not work. I am confused whether a null string is returned... (3 Replies)
Discussion started by: danish0909
3 Replies

5. Shell Programming and Scripting

Output of find command to variable?

Hi, I'd like to assign the output of the find command to a variable. What I need is to run the find command, and if it returns zero files, the program exits. so i'm trying to assign the output of the find command to the $var1 variable....and then if this is less than one, I echo a... (2 Replies)
Discussion started by: horhif
2 Replies

6. AIX

find command modify the output

Hello All, I am new to this shell scripting , I wanted to modify the output of my find command such that it does not display the path but only file names , for example I am searching for the files which are modified in the last 24 hours which is find /usr/monitor/text/ -type f -mtime... (3 Replies)
Discussion started by: raokl
3 Replies

7. Shell Programming and Scripting

Wrong output in find command

Hi guys - I am trying a small script to tell me if there is a file that exists less than 1k. It should report ERROR, otherwise the check is good. I wrote this script down, however it never runs in the if/then statement. It always returns the echo ERROR. MYSIZE=$(find /home/student/dir1... (8 Replies)
Discussion started by: DallasT
8 Replies

8. UNIX for Dummies Questions & Answers

problem with output of find command being input to basename command...

Hi, I am triying to make sure that there exists only one file with the pattern abc* in path /path/. This directory is having many huge files. If there is only one file then I have to take its complete name only to use furter in my script. I am planning to do like this: if ; then... (2 Replies)
Discussion started by: new_learner
2 Replies

9. Shell Programming and Scripting

Incorrect output using find command

I'm using the below command to list files older than 2 hours but it returns redundant output, am I missing something. # find . -mmin +120 -exec ls -l {} \; total 0 -rw-r--r-- 1 root system 0 Oct 13 09:52 test1 -rw-r--r-- 1 root system 0 Oct 13 09:52 test2 -rw-r--r-- 1 root ... (5 Replies)
Discussion started by: mbak
5 Replies

10. UNIX for Dummies Questions & Answers

output of find command

Hi, I am confused about the output of find command. Please see the two find commands below. When i put "*.c" i get lots of files. But when i put *c only i get only one file. Any answer?? $ find . -name "*c" ./clarify/cheval/hp_server/rulemanager/rulemansvc... (3 Replies)
Discussion started by: shriashishpatil
3 Replies

Featured Tech Videos