2017-11-13 16 views
0

zsh에서 find 명령을 사용할 때마다 사용자 수준에서 실행하면 항상 발견 된 경로 이외에 특정 사용 권한 거부 메시지가 출력됩니다 (예 :Zsh find permission denied - 응용 프로그램 저장 상태

).
$ find "/Users/usr" -name "Python.gitignore" 

/Users/usr/Dropbox/Programming/Git/gitignore/Python.gitignore 
find: /Users/usr/Library/Saved Application State/com.bitrock.appinstaller.savedState: Permission denied 

그러나 /Users/usr (Users/usr/Library 제외)의 하위 디렉토리에 실행의 IT가 예상대로 작동하는 경우 :

$ find "/Users/usr/Dropbox" -name "Python.gitignore" 

/Users/vivekjha/Dropbox/Programming/Git/gitignore/Python.gitignore 

는 "저장된 응용 프로그램 상태"무엇이며 어떻게하면 출력이 오류 메시지를 방지 할 수 있습니다 실행 중 find? 당신은 find 명령에서 모든 권한 오류 메시지를 숨기려면 당신은 당신이 원하는 다른 오류 메시지를 숨길 수 그러나

답변

0

, 당신은 직접 따라서는/dev/null로

find "/Users/usr" -name "Python.gitignore" 2> /dev/null; 

에 자사의 표준 오류를 리디렉션 할 수 있습니다 다음과 같은 방법으로 그것을 필터링 할 수 :

find "/Users/usr" -name "Python.gitignore" 2>&1 | grep -v ": Permission denied$" 
0

그리고 다른 에 zsh을의 대체 (globbing)을 사용하는 것입니다을 찾을 수 있습니다. 다음과 같은 결과가 가장 좋을 것입니다.

$ print -l /Users/usr/**/Python.gitignore(N)