find
コマンド
find <検索開始ディレクトリ> <検索条件> <アクション>
検索条件
ファイル名で探す
-name
,-iname
: ファイル名を指定してファイルを探す。-name
は大文字小文字区別あり。-iname
は区別なし。*
,?
などのワイルドカード利用可。-regex
: 正規表現で検索
# example find . -name '*.txt' -print
ワイルドカード使用の場合は、ブレース展開とされないようにシングルクオートを付けること。
ファイルの種類で探す
-type f
: 通常ファイル-type d
: ディレクトリ-type l
: シンボリックリンク
# 例:カレントディレクトリ以下のディレクトリを列挙 find . -type d -print
複数の検索条件の指定
find . -type f -a -name "*.txt" -print
なお、-a
は省略可。
locate
コマンド
データベースを元に検索する。デフォルトの設定では1日1回更新。
locate [オプション] <検索パターン>
# 例: "bash"の文字列を含むパスを検索 locate bash
データベースの更新
rootユーザでupdatedb
コマンドを実行
ワイルドカード検索
# 例:拡張子が'sed'のファイルパスを検索 locate '*.sed'
-i
or --ignore-case
# 例:'notes'を大文字小文字区別なく検索 locate -i notes
-b
or --basename
ファイル名のみ
# 例:ファイル名に'python'を含むパスを検索 locate -b python
AND検索かOR検索
- OR検索:複数の検索パターンをスペース区切りで列挙
# 例:'bash'と'doc'をOR検索 locate bash doc
- AND検索:
-A
または--all
オプション
# 例:'bash'と'doc'をAND検索 locate -A bash doc
Tips
出力が多い場合は、grep
と組み合わせると便利。