findコマンドの基本的なオプションやgrepとの複合技など現場・実業務に役立つ使い方をご紹介
サーバ担当者も、アプリ開発担当者も、運用担当者も、
エンジニアであれば調査、分析、テスト、リリース作業を行う際、
お世話になるであろうコマンド、その1つが「findコマンド」である。
ファイル検索、ディレクトリ検索に大活躍するfindコマンドですが、
単体で使用してもよいですが、grep、exec、awk、sed等と
組みわせて操作するとより一層便利になるコマンドですので、
覚えておいてもよいかもしれません。
今回は基本的なオプションの使い方を載せていて、備忘録のようなものですが、
需要はあると思うので、こちらでご紹介いたします。
ファイル名は特定できているが、ファイルの保存場所/作成場所を検索したい場合。
find / -name "abc.txt"
検索場所は、
ルート直下。
検索するファイルは「abc.txt」
拡張子が特定できているが、ファイルの保存場所/作成場所を検索したい場合
find /opt/tomcat -name "*.java"
検索するファイルは「*.java」の拡張子のファイル
ディレクトリ名は特定できているが、ディレクトの詳細な作成場所を検索したい場合。
find / -type d log
検索場所は、ルート直下。
「aaa」という文字列を含むtxtファイルと、そのファイルの保存場所/作成場所も検索する場合
find / -type f -name "*.txt" -print0 | xargs grep -i 'aaa'
検索場所は、ルート直下。
findコマンドでルートディレクトリ直下から検索することは業務シーンではほぼないかと思いますし、負荷もかかるので避けるべきかと思います。
また、root権限やサーバ担当者、アプリ担当者で職務分離している会社などでは、
findコマンドで検索すると、「許可がありません」と出る場合もあるかと思います。
そういった場合は標準エラー出力を破棄させると良いだろう。
find / -name "abc.txt" 2>/dev/null
10日前から現在までに更新された(修正された)ファイルを検索する
find ./ -mtime -10
権限が755のファイルを検索
find ./ -perm 755
ユーザに実行権限があるファイルを検索
find ./ -perm -u=x
検索対象から除外したいディレクトリがある場合
find / -type d log -prune -o -type f -name '*txt'
find / -type d log -prune -or -type f -name '*txt'
「log」ディレクトリを除外して検索する
検索対象とするのは、「.txt」の拡張子のついたファイル。
find / -type d "log" -prune -o -type d -name "var" -prune -o -type f -name '*txt'
「log」ディレクトリ、または、「var」ディレクトリを除外して検索する
検索対象とするのは、「.txt」の拡張子のついたファイル。
-nameで指定する文字列の大文字・小文字を区別しない場合は、「-iname」を使用してください。
-atimeや-emptyもオプションとして知っていれば便利ですが、現状知らなくて困ったシーンは特にありません。
find -E . -regex '^.+\.(jpg|gif)$'
ファイル名を正規表現でファイル名を検索する場合
-iregex
大文字・小文字を区別しないようにする場合
正規表現を最後に載せましたが、こちらをマスターすると、
より高度で、且つ、素早いファイル検索やディレクトリ検索ができるようになるかと思います。
とはいえ、筆者もまだまだですので、精進中です。
また、正規表現を使用した検索をほとんど載せていないので、
「業務で役立つ」、と言いながら、本当に役立ちそうなコマンドは、
もしかすると載せられていないかもしれませんね。
なので、まとめ次第更新したいと思います。
王道のコマンドリファレンスをご紹介。
まずは、基礎から、ですね。
Linuxコマンド逆引き事典(日経BP Next ICT選書)
- 作者: 日経Linux
- 出版社/メーカー: 日経BP社
- 発売日: 2015/08/04
- メディア: Kindle版
- この商品を含むブログを見る
Linuxコマンドブック ビギナーズ 第4版 コマンドブックシリーズ
- 作者: 川口拓之,田谷文彦,三澤明
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/04/10
- メディア: Kindle版
- この商品を含むブログを見る
Linuxコマンドライン入門 4日目 (ネット時代の、これから始めるプログラミング(NextPublishing))
- 作者: 大津真
- 出版社/メーカー: インプレスR&D
- 発売日: 2014/09/26
- メディア: Kindle版
- この商品を含むブログを見る