몇 가지 명백한 용도로,grep이 명령은 검색 이름이 디렉터리라는 여러 불만 사항을 출력할 수 있습니다. 일반적으로 다음 명령을 사용하면 발생하는 여러 "디렉터리입니다" 경고에 유의하세요.텍스트*
예를 들어:
/etc/webmin # grep "log=1" *
grep: cluster-webmin: Is a directory
config:log=1
grep: cpan: Is a directory
grep: man: Is a directory
miniserv.conf:log=1
miniserv.conf:syslog=1
grep: mon: Is a directory
"-s" 옵션을 사용하여 디렉토리에 대한 이러한 경고를 억제할 수 있다는 것을 알고 있습니다(그리고 stderr는 nul로 리디렉션될 수 있지만 이는 더 나쁩니다). 하지만 우리가 기억해야 하는 추가 상용구이므로 마음에 들지 않습니다.모든시간도 억압받았어모두경고는 단지 디렉토리에 관한 것이 아닙니다.
전 세계적으로 이 잘못된 경고를 영구적으로 억제할 수 있는 방법이 있습니까? 저는 Debian과 Cygwin에 가장 관심이 많습니다.
답변1
디렉토리의 내용을 처리하려는 방법에 따라
grep -d recurse
이 작업을 수행하거나(재귀적으로 디렉터리를 처리), 또는grep -d skip
(디렉토리와 해당 내용은 무시합니다).
~/.profile 또는 ~/.bashrc(한 명의 사용자) 또는 /etc/profile 또는 /etc/bashrc(모든 사용자)에 추가하여 이를 자동화할 수 있습니다.
alias grep="/bin/grep -d skip"
답변2
.profile
또는 다음에서 별칭을 설정할 수 있습니다 .bashrc
.
alias grep='grep -s'
글로벌의 경우 다음을 수행 /etc/profile
하거나/etc/bashrc
답변3
완전성을 위해 GNU grep은 이라는 환경 변수를 지원합니다 GREP_OPTIONS
. ~에서man grep
:
GREP_OPTIONS
This variable specifies default options to be placed in front of
any explicit options. As this causes problems when writing
portable scripts, this feature will be removed in a future
release of grep, and grep warns if it is used. Please use an
alias or script instead.
이 작업을 수행할 수 있지만 export GREP_OPTIONS=-s
매뉴얼 페이지에 나와 있듯이 이 작업도 스크립트에 전달되어 의도치 않게 문제가 발생할 수 있습니다.
GREP_OPTIONS=--color=always
예를 들어, 한때 소프트웨어 구축을 위한 지저분한 스크립트가 있었습니다 . configure
디버깅하는 것은 고통스럽고 문제가 어디에 있는지 명확하지 않습니다.