find -okオプションとは?初心者向けに丁寧解説!Linuxで確認付きコマンド実行をマスターしよう
生徒
「前にfindの-execでファイルを削除するって習いましたけど、間違って大事なファイルを消しそうで怖いです…」
先生
「その気持ち、よく分かりますよ。そんな時には、findの-okオプションを使うと安心ですよ。」
生徒
「え?-execじゃなくて-ok?どう違うんですか?」
先生
「-okは、コマンドを実行する前に『本当に実行しますか?』と聞いてくれる機能なんです。初心者にはぴったりの安全機能ですよ。」
1. find -okオプションとは?
Linuxのfindコマンドには、検索結果に対してコマンドを実行する機能があります。前回紹介した-execが代表的ですが、-okはその-execとよく似た働きをしつつ、実行前に確認メッセージを表示するという大きな特徴があります。
たとえば、ファイルを削除する前に「本当に削除していいですか?」と聞いてくれるため、うっかりミスを防ぐことができます。
2. 基本の構文と使い方
-okオプションの基本的な書き方は、-execとほとんど同じです。ただし、-okを使うことで対話的な操作(インタラクティブ)になります。
find [検索ディレクトリ] [条件] -ok [コマンド] {} \;
{}は見つかったファイルに置き換えられ、\;はコマンドの終了を示します。これは-execとまったく同じ書き方です。
3. 実際に使ってみよう(削除確認付き)
たとえば、現在のディレクトリにある.logファイルを削除したいとき、いきなり消すのは怖いですよね。そんなときは、次のように-okを使います。
find . -name "*.log" -ok rm {} \;
このコマンドを実行すると、削除対象のファイルごとに「実行してもいいですか?」と確認メッセージが表示されます。
find . -name "*.log" -ok rm {} \;
< rm ... ./sample1.log > ? y
< rm ... ./sample2.log > ? n
「y」を押せば削除され、「n」を押せばスキップされます。
4. 初心者にとっての安心ポイント
-okは、初心者がLinuxのコマンド操作に慣れるためのとても便利な機能です。
- 操作ミスを防げる(毎回確認が入る)
- 安心して試せる(練習に最適)
- 誤削除や誤処理のリスクが低い
「うっかり全部消しちゃった…」という悲劇を防ぐためにも、最初のうちは-execよりも-okを使うことをおすすめします。
5. よくある使い方の例
① 空のファイルを削除(確認付き)
find . -type f -empty -ok rm {} \;
② 指定拡張子のファイルを移動(確認付き)
find . -name "*.txt" -ok mv {} ./backup/ \;
③ 画像ファイルを別ディレクトリにコピー(確認付き)
find . -name "*.jpg" -ok cp {} ./images/ \;
このように、-okは削除だけでなくコピーや移動にも使えます。操作前にひとこと聞いてくれるのがポイントです。
6. -okと-execの違いまとめ
| オプション | 確認の有無 | 初心者向け |
|---|---|---|
-exec |
確認なし(即実行) | ×(注意が必要) |
-ok |
毎回確認あり | ◎(安心・安全) |
このように、-okは確認を大事にしたい人にとってベストな選択肢です。
7. sudoやrootで使うときの注意点
/var/logなどのシステムフォルダで-okを使うときには、管理者権限が必要になります。その場合は、sudoを使って実行しましょう。
find /var/log -name "*.log" -ok rm {} \;
< rm ... /var/log/syslog.log > ? y
確認メッセージがあるので、安心して操作できます。ただし、やはりシステムファイルの削除は慎重に行いましょう。