特定のファイルを検索して削除する

Linux入門マニュアルを無料プレゼントしています。

ダウンロードは今すぐこちらをクリック

findコマンドを利用して、特定の共通点を持つファイルを検索し、削除することができます。
引数として、検索するディレクトリ、検索するファイルの条件、-okオプション、
または-execオプションを指定し、削除コマンドのrmを使用します。
このrmコマンドの箇所を他のコマンドにして他の処理をさせる汎用性もあります。

---------------------------------------------------------------
■拡張子が「txt」のファイルを検索して削除する(削除確認あり)
---------------------------------------------------------------
[pakira@Tiger ~]$ ls -l
合計 16
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 index.htm
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 kouza.htm
-rw-rw-r-- 1 pakira pakira 28 10月 24 05:03 2012 test_file.txt
-rw-rw-r-- 1 pakira pakira 27 10月 24 05:05 2012 test_file1.txt
-rw-rw-r-- 1 pakira pakira 27 10月 24 05:06 2012 test_file2.txt
-rw-rw-r-- 1 pakira pakira 27 10月 24 05:09 2012 test_file3.txt

[pakira@Tiger ~]$ find . -name "*.txt" -ok rm {} \; ←ファイルを検索して削除します。
< rm ... ./test_file3.txt > ? y
< rm ... ./test_file.txt > ? y
< rm ... ./test_file2.txt > ? y
< rm ... ./test_file1.txt > ? y

[pakira@Tiger ~]$ ls -l
合計 0
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 index.htm
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 kouza.htm

find . -name "*.txt" -ok rm {} \;

上記の例では、カレントディレクトリ内にある拡張子が.txtのファイルを検索し、
削除しています。-okオプションを付けることで削除確認が表示されますが、
ここを-execオプションにすることで確認なしで削除できます。

---------------------------------------------------------------
■拡張子が「htm」のファイルを検索して削除する(削除確認なし)
---------------------------------------------------------------
[pakira@Tiger ~]$ ls -l
合計 0
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 index.htm
-rw-rw-r-- 1 pakira pakira 0 10月 24 04:55 2012 kouza.htm
[pakira@Tiger ~]$ find . -name "*.htm" -exec rm {} \; ←削除確認なしで削除します。
[pakira@Tiger ~]$ ls -l
合計 0

"*.txt" 拡張子が「.txt」のもの
"file*.*" ファイル名が「file」で始まっているもの
"????????" ファイル名が8文字のもの
"*~" バックアップファイル「~」で終わっているもの
"*" すべてのファイル



P.S
特定のファイルを検索して削除するのもっと高い技術を身につけたいならこちら


<<関連記事>>
・MIMEでエンコードされたテキストを読めるように変換する
・viエディタで文字をコピーする
・ハードディスクの使用状況を調べるには
・tar.bz2ファイルを解凍して展開するには
・tar.gz形式のファイルを解凍、展開するには