« 【Emacs】 タブ・全角スペースのハイライト表示 | トップページ | 【Emacs】 howm 1.3.2 with Emacs 23.0でコメントのハイライトが無効になる »

【Linux】 findコマンド

プログラム作ったり、写真を管理したりすると特定のディレクトリ以下について大量のファイル操作する事は結構あるわけです。
例えば・・・

  • 拡張子がbakのファイルを全て削除する
  • ファイル名にtestを含むファイルの数を数える
  • 拡張子jpgを全てpngに変更する(そんな事ないと思うけど
  • ディレクトリの一覧を表示する
  • .svnディレクトリ以外のファイルについて文字コードをUTF-8に変更する

等など。
実は、これ全部 find とその他のコマンドの組み合わせで実現できます。findは特定ディレクトリ以下の条件に当てはまるファイルやディレクトリを検索するコマンドです。めっちゃ便利やから良く使うねんけど。

基本的な使い方

find ディレクトリ
    指定ディレクトリ以下の全てのファイルとディレクトリを表示する
find ディレクトリ -type タイプ
    指定ディレクトリ以下の全てのタイプで指定したファイルorディレクトリを表示する
find ディレクトリ -name 名前
    指定ディレクトリ以下の全ての名前のファイルorディレクトリを表示する
find ディレクトリ -exec コマンド {} \;
    指定ディレクトリ以下の全てのファイルを引数にしてコマンドを実行する

凝った使い方

find . -name \.svn -type d -prune -or -type f -print
    カレントディレクトリ以下の.svnディレクトリ以外のディレクトリに含まれる全ファイルを表示する
find . -name \.svn -type d -exec rm -Rf {} \;
    カレントディレクトリ以下の全ての.svnディレクトリを削除する
    SubversionでチェックアウトしたディレクトリからSubversionの管理情報を削除する時に便利

findと組み合わせると便利なコマンド

grep
    ファイル内の文字列探索(-rコマンドでもできるけど、findの方が高度な検索が可能)
wc
    ファイルの情報を表示(行数とか単語数とか)
file
    ファイルの情報(キャラクタコードとか)を表示
mv/cp/rm
    ファイルのコピーやら移動やら削除やら
nkf
    ファイルの文字コードを変更
perl/sed
    ファイルの内容置き換え

かなり応用可能なコマンドですなぁ。

« 【Emacs】 タブ・全角スペースのハイライト表示 | トップページ | 【Emacs】 howm 1.3.2 with Emacs 23.0でコメントのハイライトが無効になる »

Linux」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 【Linux】 findコマンド:

« 【Emacs】 タブ・全角スペースのハイライト表示 | トップページ | 【Emacs】 howm 1.3.2 with Emacs 23.0でコメントのハイライトが無効になる »