grepはディレクトリ内のファイル名の検索には使えないのでしょうか?

grepはファイルの中身から特定の単語を検索するコマンドなので、ディレクトリ内のファイル名を検索することはできません。
2023年6月15日
ユーザー

レッスン動画(0:22)では以下の命令でファイル名の検索を行っています。

ls -l /etc/ | grep 'sudo'

しかし、単独でgrepを使おうとするとうまくいきません。例えば、

例1: /etc/servicesファイル内に'backup'という文字列があるか検索する場合
以下のように書くと検索できる。

grep 'backup' /etc/services

例2: etcディレクトリ内に'sudo'というファイルがあるか検索する場合
以下のように書いてもうまく検索できない。

grep 'sudo' /etc/

例1, 2から考えて、grepはディレクトリ内のファイル名の検索には使えないと考えてよいでしょうか?
ただし、以下のようにパイプを使ってlsと組み合わせればファイル名の検索もできるようになる?

ls -l /etc/ | grep 'sudo'

という認識で合ってますか?

・なお、grepは通常、以下のように検索場所(=/etc/services)を指定すると思います。

grep 'backup' /etc/services

しかし、レッスンではパイプを使う場合はgrep 'sudo'しか書かず、どこを検索するか指定していません。パイプ記号の左側のls -l /etc/で検索場所を指定済みなので省略できる、ということでしょうか。

grepの基本的な使い方がふわっとしかわかっておらず、質問させてもらいました。
ご回答のほどよろしくお願いします。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(1)