検索したい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
だから、2つの質問があります。
- エラーなしでその行のみをフィルタリングする方法は?
- 特定の出力ラインを抑制する方法はありますか?
この問題だけでなく、問題に対する一般的な解決策を提示してください。
答え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
使用されていない限り)。感嘆符はテストの意味を反転します。