LoginSignup
9
13

More than 1 year has passed since last update.

Linuxコマンドでとにかくいろいろ探したい時のリンク集

Last updated at Posted at 2019-06-11

ファイルとかディレクトリとかの情報で探したい

# ファイル名かディレクトリ名で検索したい
$ find {ディレクトリパス} -name '{検索したい文字列}' 

# ファイル名で検索したい
$ find {ディレクトリパス} -type f -name '{検索したい文字列}' 
# ファイル名で検索したい(大文字小文字無視)
$ find {ディレクトリパス} -type f -iname '{検索したい文字列}' 

# ディレクトリ名で検索したい
$ find {ディレクトリパス} -type d -name '{検索したい文字列}' 

# ファイルの拡張子を指定して再帰的に検索したい
$ find ./ -name *.xhtml
$ grep '{検索したい文字列}' {ディレクトリパス} -r --include=*.php

# 特定の拡張子を除外して再帰的に検索したい
$ grep '{検索したい文字列}' {ディレクトリパス} -r --exclude=*.css
$ find {ディレクトリパス} -not -name *.css -a -name *{検索したい文字列}*

# ファイルのタイムスタンプで検索したい(例:今~10min前まで)
$ find -mmin -10

ファイルの中身にある文字列で探したい

$ find {ディレクトリパス} -type f | xargs grep '{検索したい文字列}'

# ファイル名だけ表示
$ grep -rl '{検索したい文字列}' {ディレクトリパス}

# 行表示版
$ grep -rn '{検索したい文字列}' {ディレクトリパス}

# 前後指定行数表示版(前後4行表示)
$ grep -4 -rn '{検索したい文字列}' {ディレクトリパス}

# 大文字小文字無視(-i)してファイルパスだけ表示(-l)で検索したい
$ grep -irl '{検索したい文字列}' {ディレクトリパス}
# 指定した拡張子(--include)のファイルだけでバイナリファイルを除外(-I)してファイルパスだけ表示(-l)で検索したい
$ grep -Irl '{検索したい文字列}' --include=*.xhtml
# 任意の文字列を含まない(grep (GNU grep) 3.1)
$ grep -v {任意の文字列}

# 複数条件(AND) : (「;」で始まらない)and(「{{」を含む)
$ grep ^[^\;] | grep [\{\{]
# 複数条件(OR) : (「{{」を含む)or(「[」で始まる)
$ grep -e [\{\{] -e ^[\[]
# 複数条件(ANDとOR) : (「;」で始まらない)and((「{{」を含む)or(「[」で始まる))
$ grep ^[^\;] | grep -e [\{\{] -e ^[\[]

# 正規表現を使って探したい
grep -rE '{検索したい文字列を表す正規表現}' {ディレクトリパス}

探しにくい文字を探したい

# ドットを含む文字を検索したい(囲みはダブルクォーテーションでもOK)
$ grep -r '\.padding' --include=*.css

# 「-1」を探したい
$ grep -Irn '\-1' --include=*.java

〇〇を除外して探したい

# 任意の文字列を含まないで探したい
$ grep -rv {任意の文字列} {ディレクトリパス}
# 「任意の文字列を含まない」かつ「任意の文字列を含む」で探したい
$ ls -la | grep -v {含まない文字列} | grep {含む文字列}
# バイナリファイルを除外して探したい
$ grep -Ir '{検索したい文字列}' {ディレクトリパス}
# 特定のディレクトリを除外して探したい
$ grep -ir {検索したい文字列} --exclude-dir={ディレクトリ名}

bashでさっき使ったコマンドを探したい

(Cntrol + R)
$ (reverse-i-search)`cd': cd {ディレクトリ}

xxで始まる文字を探したい

# ハイフン(-)で始まる文字
## 失敗例
$ grep -rn "-- " {ディレクトリパス}
grep: unknown option --
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
## 成功例
$ grep -rn "\-- " {ディレクトリパス}

#「 AS 」で始まる「大文字英数字」を探す
grep -r -P '(?<=\sAS\s)[A-Z0-9_]+' {ディレクトリパス}

他のことをやりたい

9
13
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
9
13