▼すべてを開く。
▲すべてを閉じる。
$ find . -name \*~ -exec rm {} \;
findコマンドで、検索するディレクトリ「.」検索対象がファイル名であることを示す「-name」検索するファイル名「\*~」、検索結果を引数としてコマンドを実行する「-exec」、実行するコマンド「rm {}」コマンドの終了を表す「\;」を指定すると、findコマンドにより検索されたファイルが削除される。意図しないファイルを削除しないために、事前に同じ条件で検だけ実行して確認しておくとよい。
rm | 実行するコマンド |
{} | findの検索結果に置き換えられる部分 |
\; | コマンドの終了(エスケープ文字「\」と終了記号「;」) |
「{}」は、findの検索結果のファイル名で置き換えられる。「\」は、シェルが「;」を解釈するのを防ぐためのエスケープ文字で、「;」までがコマンド部分である。。
一度にコマンドを実行せずに、コマンドの実行許可を逐次求めながら行うには、「-exec」の代わりに「-ok」を指定する。コマンドを実行する場合は「y」、実行せずにスキップする場合は「n」を入力する。
findコマンドでディレクトリと検索オプションを指定する$ find . -name \*~ -ok rm {} \; < rm ... ./work/cat/a.txt~ > ? y < rm ... ./work/cat/b.txt~ > ? n < rm ... ./work/cat/c.txt~ > ? y < rm ... ./work/cat/e.txt~ > ? n < rm ... ./work/file3.txt~ > ? n < rm ... ./work/dir2/dir2_1/file1~ > ? n < rm ... ./work/dir3/file3.txt~ > ? n < rm ... ./work/cut/List3~ > ? n < rm ... ./work/cut/hdni1.txt~ > ? n < rm ... ./work/cut/hdni2.txt~ > ? n < rm ... ./work/cut/hdni3.txt~ > ? n < rm ... ./work/cut/hdni4.txt~ > ? y < rm ... ./work/cut/hdni1-.txt~ > ? n
オプション | 意 味 |
---|---|
-name | 検索対象をファイル名で指定する |
-exec | 検索結果を引数としてコマンドを実行する |
-ok | コマンド実行時に逐次実行許可を求める |
$ find . -name \*~ -print ./work/cat/a.txt~ ./work/cat/b.txt~ ./work/cat/c.txt~ ./work/cat/e.txt~ ./work/file3.txt~ ./work/dir2/dir2_1/file1~ ./work/dir3/file3.txt~ ./work/cut/List3~ ./work/cut/hdni1.txt~ ./work/cut/hdni2.txt~ ./work/cut/hdni3.txt~ ./work/cut/hdni4.txt~ ./work/cut/hdni1-.txt~
findコマンドで、検索するディレクトリ「.」検索対象がファイル名であることを示す「-name」検索するファイル名「\*~」、検索結果の表示「-print」を指定すると、ディレクトリにあるすべてのチルダファイル(ファイル名の末尾にチルダ「~」が付くバックアップファイル)を表示する。
オプション | 意 味 |
---|---|
-name | 検索対象をファイル名で指定する |
検索結果のファイル名をフルパスで表示する |