忘備録

日々の調べ物をまとめる。アウトプットする。基本自分用。

特定の名前のファイルだけ削除する

例えば、カレントディレクトリ「srcObjc」に下記のファイルがあったとします。

Makoto-MacBook-Air:srcObjc makoto$ ls -l
total 96
-rw-r--r--  1 makoto  staff   151 11 14 16:51 Singer.h
-rw-r--r--  1 makoto  staff   192 11 14 16:21 Singer.m
-rw-r--r--  1 makoto  staff  2840 11 14 17:08 Singer.o
-rw-r--r--  1 makoto  staff   155 11 14 16:13 Song.h
-rw-r--r--  1 makoto  staff   154 11 14 16:13 Song.m
-rw-r--r--  1 makoto  staff  2448 11 14 17:08 Song.o
-rw-r--r--  1 makoto  staff   620 11 14 16:51 compile.txt
-rw-r--r--  1 makoto  staff   232 11 14 15:56 main.m
-rw-r--r--  1 makoto  staff  1776 11 14 17:08 main.o
-rwxr-xr-x  1 makoto  staff  9352 11 14 16:31 myFirstProgram

上記のファイルのなかから拡張子が「.o」のものだけを削除したい場合。。。

Makoto-MacBook-Air:srcObjc makoto$ ls | grep \.o$ | xargs rm

です。

やっていることは

  1. lsでファイル名を出力

  2. 1で出力したファイル名をgrepでフィルタリング

  3. 2の結果をxargsでrmの引数に渡す

です。

lsの代わりにfindを使えばディレクトリにまたがって削除もできそうです。。。

参考

xargs コマンド | コマンドの使い方(Linux) | hydroculのメモ