검색하고 싶어요chrom
/var
디렉토리 에 . 그래서 나는 이것을 실행했다.
$ ls -R | grep "^chrom"
놀랍게도 그것은 보여줍니다이것. 다음과 같은 출발선은 거의 없습니다.
amit@ElMaverick:/var$ ls -R | grep "^chromium"
chromium-browser_55.0.2883.87-0ubuntu0.16.04.1263_amd64.deb
chromium-browser-l10n_55.0.2883.87-0ubuntu0.16.04.1263_all.deb
chromium-codecs-ffmpeg-extra_55.0.2883.87-0ubuntu0.16.04.1263_amd64.deb
ls: cannot open directory './cache/apt/archives/partial': Permission denied
ls: cannot open directory './cache/cups': Permission denied
ls: cannot open directory './cache/ldconfig': Permission denied
chromium-browser_chromium-browser.png
chromium-browser_chromium-browser.png
chromium-bsu_chromium-bsu.png
chromium-browser_chromium-browser.png
ls: cannot open directory './lib/apt/lists/partial': Permission denied
ls: cannot open directory './lib/bluetooth/78:0C:B8:46:10:D5': Permission denied
chromium-browser.conffiles
chromium-browser-l10n.list
chromium-browser-l10n.md5sums
chromium-browser.list
chromium-browser.md5sums
chromium-browser.postinst
chromium-browser.prerm
chromium-codecs-ffmpeg-extra.list
chromium-codecs-ffmpeg-extra.md5sums
ls: cannot open directory './lib/mysql': Permission denied
ls: cannot open directory './lib/mysql-files': Permission denied
출력에서 이러한 줄을 보고 싶지 않습니다.
ls: cannot open directory
그래서 두 가지 질문이 있습니다.
- 오류 없이 해당 행만 필터링하는 방법은 무엇입니까?
- 특정 출력 라인을 억제하는 방법이 있습니까?
이 문제뿐만 아니라 문제에 대한 일반적인 해결책을 제시해 주십시오.
답변1
표준 오류 스트림을
ls
다음으로 리디렉션합니다/dev/null
.ls -R 2>/dev/null | grep '^chrom'
추가 grep 작업:
ls -R 2>/dev/null | grep '^chrom' | grep -v 'some additional pattern'
(find
왜 `ls`를 구문 분석하지 *않나요*?):
find . -name 'chrom*' ! -name 'some additional pattern' 2>/dev/null
find
파일 이름 와일드카드 패턴을 사용하는 동안 grep
정규식을 사용하십시오 . 또한 파일( ) 또는 디렉터리( ) 등을 find
구체적으로 찾을 수도 있습니다 .-type f
-type d
find . -type f -name 'chrom*' ! -name 'some additional pattern' 2>/dev/null
명령의 각 부분은 find
발견된 경로 이름에 대한 "테스트"와 같습니다. -type
파일 형식에 대해 테스트하고 -name
경로의 최종 파일 이름 부분에 대해서도 테스트합니다. 테스트는 논리적으로 AND로 연결됩니다( -o
사용되지 않는 한). 느낌표는 테스트의 의미를 반전시킵니다.