2014-06-24 88 views
1

我有一個腳本,此行中我正在寫需要幫助省略文件夾中查找命令

find/\(-perm -4000 -o -perm -2000 \) -type f -exec file {} \; | grep -v ELF | cut -d":" -f1 >> $OUTPUT 

它做的工作,但我總能得到這些消息我想省略

find: `/proc/29527/task/29527/fd/5': No such file or directory 
find: `/proc/29527/task/29527/fdinfo/5': No such file or directory 
find: `/proc/29527/fd/5': No such file or directory 
find: `/proc/29527/fdinfo/5': No such file or directory 

我怎樣才能省略/proc目錄?

+0

查找/ -name PROC -prune -o。 ... –

+0

find/... \; 2>/dev/null | grep ... –

回答

1

我認爲這應該工作:

find/-path /proc -prune -o \(-perm -4000 -o -perm -2000 \) -type f ... 
     ^^^^^^^^^^^^^^^^^^^^^ Add this to your command line 
+0

不知道如何刪除'/ proc'? – BroSlow

+0

然後你應該重新閱讀這個問題。 –

+0

好吧,這工作。感謝:D – user3635042

1

如果您重定向到STDERR/dev/null。這樣一來,你沒有看到在你的TTY(STDOUT)不必要的錯誤/警告像

{ find/\(-perm -4000 -o -perm -2000 \) -type f -exec file {} \; | grep -v ELF | cut -d":" -f1 >> $OUTPUT; } 2>/dev/null 
+0

仍然得到相同的輸出。 – user3635042

+0

@ user3635042,這很奇怪。請參閱編輯..現在嘗試。 – Rahul

+0

@Rahul我認爲你還需要在'-exec'中重定向stderr,因爲它執行一個subshel​​l – BroSlow

0

以下修剪的proc目錄:

find/-name /proc -prune -o \ 
\(-perm -4000 -o -perm -2000 \) -type f \ 
-exec file {} \; | grep -v ELF | cut -d":" -f1 >> $OUTPUT