読者です 読者をやめる 読者になる 読者になる

文系男子が日和るIT開発~IT知識なしで飛び込んだIT企業

文系男子だからIT企業に就職するなんて考えてもみませんでしたが、日和ながら日々くらいついています。

findコマンドの基本的なオプションやgrepとの複合技など現場・実業務に役立つ使い方をご紹介

CentOS

サーバ担当者も、アプリ開発担当者も、運用担当者も、
エンジニアであれば調査、分析、テスト、リリース作業を行う際、
お世話になるであろうコマンド、その1つが「findコマンド」である。

 ファイル検索、ディレクトリ検索に大活躍するfindコマンドですが、
単体で使用してもよいですが、grep、exec、awksed等と
組みわせて操作するとより一層便利になるコマンドですので、
覚えておいてもよいかもしれません。

今回は基本的なオプションの使い方を載せていて、備忘録のようなものですが、
需要はあると思うので、こちらでご紹介いたします。

 

 

ファイル名は特定できているが、ファイルの保存場所/作成場所を検索したい場合。

find / -name "abc.txt"

検索場所は、

 

ルート直下。

検索するファイルは「abc.txt

 

拡張子が特定できているが、ファイルの保存場所/作成場所を検索したい場合

find /opt/tomcat -name "*.java"

検索場所は、/opt/tomcat/ディレクトリ配下

検索するファイルは「*.java」の拡張子のファイル

 

 

ディレクトリ名は特定できているが、ディレクトの詳細な作成場所を検索したい場合。

find / -type d log

検索場所は、ルート直下

検索するディレクトリ名は「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もオプションとして知っていれば便利ですが、現状知らなくて困ったシーンは特にありません。

 

 

正規表現

-regex 

find -E . -regex '^.+\.(jpg|gif)$'

ファイル名を正規表現でファイル名を検索する場合

-iregex

大文字・小文字を区別しないようにする場合

 

 

正規表現を最後に載せましたが、こちらをマスターすると、
より高度で、且つ、素早いファイル検索やディレクトリ検索ができるようになるかと思います。
とはいえ、筆者もまだまだですので、精進中です。
また、正規表現を使用した検索をほとんど載せていないので、
「業務で役立つ」、と言いながら、本当に役立ちそうなコマンドは、
もしかすると載せられていないかもしれませんね。
なので、まとめ次第更新したいと思います。

 

 

王道のコマンドリファレンスをご紹介。
まずは、基礎から、ですね。

 

[改訂第3版]Linuxコマンドポケットリファレンス

[改訂第3版]Linuxコマンドポケットリファレンス

 

 

 

Linuxコマンド逆引き事典(日経BP Next ICT選書)

Linuxコマンド逆引き事典(日経BP Next ICT選書)

 
Linuxコマンドブック ビギナーズ 第4版 コマンドブックシリーズ

Linuxコマンドブック ビギナーズ 第4版 コマンドブックシリーズ