ICT Diary

Network(主にCisco系)、Server(RedHat系)、Program(適当)を気まぐれにUPしていく。

Linux各種検索コマンド (ファイル内の特定の文字列検索)

概要

ディレクトリ内を検索する際のlinuxコマンドやその使い道をまとめる

Command構文

find

フォルダ・ファイルの検索
※オプションに[-print0]を付けることで空白にも対応

find <DIR> <option> [条件A] <-print0>

ls

ファイル・ディレクトリを一覧出力

ls <option> <DIR>

grep

文字列の検索が出来る

grep [文字列] <DIR>

xargs

コマンドの出力結果を別のコマンドの引数として渡す
※オプションに[-0]を付けることで空白にも対応

<command1> | xargs <-0> <command2> [<command1>の結果]

find検索パターン

ファイル、ディレクトリ名をワイルドカードで検索

find <DIR> -name [文字列]

容量が0のファイル、ディレクトリを検索

find <DIR> -empty [文字列]

and条件で検索

find <DIR> [条件A] -and [条件B]

例: ルート配下の名前が"CMD"を含み、かつファイル名に

or条件で検索

find <DIR> [条件A] -or [条件B]

否定条件で検索

find <DIR> -not [条件A]

例: 現在のディレクトリ内で拡張子[.log]を除外したものを出力

find ./ -not [条件A] -name "*.log"

検索結果に対して任意のコマンド実行

find <DIR> <OPTION> [条件A] -exec [コマンド] \;

例: 現在のディレクトリ内の全Logファイルを圧縮する
※{}: 対象(検索結果)すべて

find ./ -name "*.log" -exec zip ./Logging.zip {} \;

ファイル内の任意の文字列検索

find <DIR> <OPTION> [条件A] -print0 | xargs -0 grep "[文字列]"

grep検索パターン

特定のディレクトリのファイル名検索

ls <DIR> <OPTION> | grep "[文字列]"

ファイル内の任意の文字列検索

grep "[文字列]" -rl <DIR>