내 현재 디렉토리:
pwd
/home/debian
-dig
에서 문자열을 검색합니다 /home/debian/mydoc/source
.
grep -lr -e "-dig" /home/debian/mydoc/source
#get nothing as output
다음 grep에 아무것도 파이핑해도 결과가 나오지 않는 것 같습니다.
grep -lr -e "-dig" /home/debian/mydoc/source | xargs -d '\n' grep -lr -e "dns"
#my desired output:nothing ,none directory send to xargs
확인하다:
grep -lr -e "-dig" /home/debian/mydoc/source | xargs -d '\n' grep -lr -e "dns"
/home/debian/.cache/google-chrome/Default/Cache/b2b96208dbb4fdff_0
/home/debian/.cache/google-chrome/Default/Cache/33f7b9aaf4e3cb37_0
/home/debian/.cache/google-chrome/Default/Cache/b7b3cae8052a94ea_0
실제 검색 결과는 제가 상상한 것과 다릅니다 grep -lr -e "dns" /home/debian
.
grep -lr -e "dns" /home/debian
/home/debian/.cache/google-chrome/Default/Cache/b2b96208dbb4fdff_0
/home/debian/.cache/google-chrome/Default/Cache/33f7b9aaf4e3cb37_0
/home/debian/.cache/google-chrome/Default/Cache/b7b3cae8052a94ea_0
bash 명령의 근거를 알려주십시오.- grep -lr -e "-dig" /home/debian/mydoc/source | xargs -d '\n' grep -lr -e "dns"
?
답변1
첫 번째 표현은 확실히 아무것도 반환하지 않으므로 두 번째 grep은 xargs에서 빈 args 목록을 가져옵니다.
두 번째 grep에는 -r(재귀)이 포함됩니다.
man grep 페이지에서:
-r, --recursive :: 파일 피연산자가 제공되지 않으면 grep은 작업 디렉토리를 검색합니다.
따라서 xargs가 실행하는 grep은 /home/debian으로 복원됩니다.