0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

任意の文字列が含まれたファイルを探すワンライナー

Last updated at Posted at 2021-07-19

Linuxでコード書いていると、「あれ~、どこのヘッダーに定義情報書いてあったっけ?」ってたまになるので、OSの中の全ヘッダーファイルを検索して目的の情報を見つけ出すときのワンライナー。

最近だと WSL なんかを使っている人もいるだろうし、そうするとデフォルトで/mnt/cが Windows OS のファイルシステムと繋がっているので Windows 上のファイルもスキャンしちゃっていつまでたっても検索終わらんのでディレクトリの検索除外オプションも入れておく。

[Ubuntu: ~]$find / -type d -name mnt -prune -o -type f -name "検索したいファイル名" -print 2>/dev/null | xargs grep -i "検索したい文字"
  • -type d -name <ディレクトリ名> -prune: 指定したディレクトリを検索から除外
  • -type f -name <ファイル名> -print: 指定したファイル名を検索してファイルパスを表示
  • -o: 前者(-type d -name <ディレクトリ名> -prune)が真ならば、後者(-type f -name <ファイル名> -print)は評価しない
  • xargs grep -i "検索したい文字": ファイルパスを1行ずつgrepに渡して、大文字小文字を無視して検索

e.g) /mntディレクトリ以外で、.hがファイル名に含まれるファイルから、tcp_rtoの文字列が含まれるファイルを探す

[Ubuntu: ~]$find / -type d -name mnt -prune -o -type f -name "*.h" -print 2>/dev/null | xargs grep -i "tcp_rto*"

e.g) /mntディレクトリ以外の全ファイルから、tcp_rtoの文字列が含まれるファイルを探す

[Ubuntu: ~]$find / -type d -name mnt -prune -o -type f -print 2>/dev/null | xargs grep -i "tcp_rto*" 2>/dev/null
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?