dskjal
広告
広告

find コマンドの実際の使用例

カテゴリ:linux

find の基本的な使い方

ファイルなどを検索する!findコマンドの詳細まとめ

findコマンドの使い方

find コマンド

正規表現に合致するファイル名をfindする方法

検索してファイルを消す時に高速に行う方法

コマンド例

ファイルサイズが 100KByte 以下のファイルを検索

$ find . -size -100k -type f

ファイルサイズが 1KByte 以上 1MByte 以下のファイルを検索

$ find . -size +1k -size -1000k -type f

今日変更されたファイルの検索

$ find . -mtime 0 -type f

30 日以上変更のないファイルとフォルダの検索

$ find . -not -mtime -30

一週間以内にアクセスされたファイルやフォルダの検索

$ find . -atime -7

更新日時順に 10 個表示

$ find . -type f -print0 | xargs -0 ls -alt | head -10

空のディレクトリの検索

$ find . -empty -type d

ファイル数をカウント

$ find . -type f | wc -l

カレントディレクトリのファイル数をカウント

$ find . -maxdepth 1 -type f | wc -l

ファイルパスを正規表現でフィルタする

$ find . | grep -E ""

find で正規表現を使う

$ find . -type f -regextype posix-egrep -regex ""

grep でファイル名のみ表示

$ grep -l "" *.txt

xargs と組み合わせる

findとxargsコマンドで-print0オプションを使う理由(改)

.c と .h ファイルの内容を正規表現でフィルタする(行番号付き)

$ find . -name "*.[ch]" -print0 | xargs -0 grep -E "" -n

cpp の場合は -name を分ける.

$ find . -name *.cpp -o -name *.h -print0 | xargs -0 grep -E "" -n

検索したファイルを移動する

$ find . -name *.c -print0 | xargs -0 mv -t ./dst

検索したファイルを削除する

$ find . -name *.c -print0 | xargs -0 rm -rf

$ find . -name *.c -delete

検索したファイルをコピーする

$ find . -name *.c -print0 | xargs -i -0 cp {} ./cp

全文置換

$ find . -type f -print0 | xargs -0 sed -i "s/hoge/huga/g"

外部リンク

POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき!


広告
広告

カテゴリ