今回はファイルやディレクトリ削除を行うrmコマンドの使い方について紹介していきます。
Linuxを使う上で、ファイルやディレクトリの削除は開発環境では頻繁に行う作業ですが、重要なファイルを誤って削除してしまうことがあります。
本記事ではLinux初心者がrmコマンドを扱う上で知っておくべき基本とオプションについてまとめました。
基本コマンドやオプションを使いこなすと、 無駄な作業や、誤作業が減り、結果として効率よく作業が進めていけると思います。
Linuxを扱うエンジニアは参考いただけますと幸いです。
要点
rmコマンドの基本的な使い方
豊富な実行例で紹介する使い方
rmコマンドについて
rmは「remove」の略で、ファイルやディレクトリを削除するコマンドです。
使い道は非常にシンプルなコマンドですが、使い方を誤ると環境によっては取り返しのつかないことになります。
不要なファイルを削除する際に、誤って関係ないファイルやディレクトリを削除してしまったということはその一例でよくあります。
通常バックアップなどのリカバリー対策が施されていれば影響が少なくすみますが、復旧できないものであれば内容によっては被害が甚大です。
そのため商用環境などの大事な環境では作業端末前で複数人のチェックをします。そうしたことで打ちミスや削除対象の誤りなどをチェックしています。
ここでは基本的なコマンドだが使い方を誤ると事故に慣れかねないということだけ覚えといていただければ幸いです。
また他のコマンドとの併用、ワイルドカードを混ぜながら使用すれば、特定の条件を満たすファイルをまとめて削除できます。
よく使われているので覚えていきましょう。
便利なオプションが多数あり、時間短縮に役立つ便利なオプションを実行例を入れてご紹介していきます。
RPMコマンドポイント
基本的なコマンドで簡単に扱えるが、対象を間違えると事故につながる。
主にファイルやディレクトリの削除、さらにワイルドカードを使用することにより対象を絞ることができます。
rmコマンドの書式
まずは書式の紹介をします。コマンドの後にスペースを入れて引数を入れます。複数のファイルを選択する場合はスペースを都度入れます。
#rm オプション ファイル1 ファイル2
・オプションを使用した例
#rm -r ディレクトリ1 ディレクトリ2 ディレクトリ3……
rmコマンドのオプション
下記はrmコマンドでよく使われるオプションを表にまとめたものになります。
私個人では「-r」や「-f」などが便利でよく使用します。ディレクトリもまとめて削除したい時に-r、rmコマンドで削除する際に確認メッセージがでてきますが、表示させたくないときに-fを使用します。状況に合わせて覚えておきましょう。
オプション | 説明 |
-i(--interactive) | 削除前に確認メッセージが入る |
-r(--recursive) | ディレクトリを中身ごと削除する |
-f(--force) | 強制削除、オプションでエラーメッセージを表示しない |
-v(--verbose) | 削除の詳細表示 |
-d(directory),--dir | ディレクトリの中身が空前提。ディレクトリを削除。 |
rmコマンドの実行例
それでは実行例を紹介していきます。
ファイルを削除する
こちら基本的な使い方としてファイルを削除します。ここではfile1,file2を削除しています。
mitsu@miitsu-computer:~/デスクトップ$
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 19:47 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
-rw-rw-r-- 1 mitsu mitsu 0 1月 10 19:47 file1
-rw-rw-r-- 1 mitsu mitsu 0 1月 10 19:47 file2
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$ rm file1 file2
mitsu@miitsu-computer:~/デスクトップ$
ワイルドカードによる複数指定
「file」という文字列を含むファイルをまとめて表示するには「*」を使用します。
mitsu@miitsu-computer:~/デスクトップ$ touch file1
mitsu@miitsu-computer:~/デスクトップ$ touch file2
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 19:51 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
-rw-rw-r-- 1 mitsu mitsu 0 1月 10 19:51 file1
-rw-rw-r-- 1 mitsu mitsu 0 1月 10 19:51 file2
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$ rm file*
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 19:51 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$
オプションと同じファイル名を削除する場合
コマンドのあとに「--」を入力し、スペースを空けてからファイルを名を指定します。
「--」をつけてファイルを削除する
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
-rw-rw-r-- 1 mitsu mitsu 0 1月 10 20:01 -file1
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 20:01 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$ rm -- -file1
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 20:01 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$
「-」月ファイル名を削除するには「-」の前に「/」を付与します
「-」つきファイル名を削除するにはファイルの前に「./」を付与します。
mitsu@miitsu-computer:~/デスクトップ$ touch ./-file1
mitsu@miitsu-computer:~/デスクトップ$ ls
-file1 metawork permission
mitsu@miitsu-computer:~/デスクトップ$ rm ./-file1
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$
ドットファイル(隠しファイル)を削除する
ドットファイルを削除するには「.」をファイル名の前に付与します。
「ls」コマンドに「-a」をオプションで指定することによりドットファイルを表示することができます。
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 20:01 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$ touch .file1
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 20:03 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
-rw-rw-r-- 1 mitsu mitsu 0 1月 10 20:03 .file1
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$ rm .file1
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 20:03 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$
オプションでの実行例
ここからはオプションを使用した実行例を出していきます。
-i(--interactive):メッセージを表示しながら削除する
削除する前に確認したいということであれば、「ls」コマンドに「-i」コマンドを使用します。
商用環境では2人がかりでクロスチェックするのは当たり前で、コマンド実行する際に毎回確認したい場合に役立ちます。
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 20:09 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
-rw-rw-r-- 1 mitsu mitsu 0 1月 10 20:09 file1
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$ rm -i file1
rm: 通常の空ファイル 'file1' を削除しますか? y
mitsu@miitsu-computer:~/デスクトップ$ ll
合計 16
drwxr-xr-x 4 mitsu mitsu 4096 1月 10 20:10 ./
drwxr-xr-x 16 mitsu mitsu 4096 1月 6 13:47 ../
drwxrwxr-x 2 mitsu mitsu 4096 12月 8 12:58 metawork/
drwxrwxr-x 2 mitsu mitsu 4096 12月 13 13:56 permission/
mitsu@miitsu-computer:~/デスクトップ$
-r(--recursive):-Rオプションでディレクトリを中身ごと削除する
ディレクトリ毎ファイルを削除したい場合は「-r」を使用します。
こちら「rm」コマンドのオプションでは頻繁に使用されます。
特にディレクトリを削除するのに便利ですが、ディレクトリ削除なので削除対象を誤るとディレクトリ内のファイルすべてが削除されて大変なことになりますので、気を付ける必要があります。
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$ mkdir directory2
mitsu@miitsu-computer:~/デスクトップ$ ls
directory2 metawork permission
mitsu@miitsu-computer:~/デスクトップ$ rm directory2
rm: 'directory2' を削除できません: ディレクトリです
mitsu@miitsu-computer:~/デスクトップ$ rm -r directory2
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$
-f(--force):強制削除、オプションでエラーメッセージを表示しない
削除する際はメッセージも出ず、削除する対象もないときも同様なため、画面にメッセージを出力させたくない場合に便利です。
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$ touch file1
mitsu@miitsu-computer:~/デスクトップ$ rm file2
rm: 'file2' を削除できません: そのようなファイルやディレクトリはありません
mitsu@miitsu-computer:~/デスクトップ$ rm -f file2
mitsu@miitsu-computer:~/デスクトップ$ ls
file1 metawork permission
mitsu@miitsu-computer:~/デスクトップ$ rm -f file1
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$
-v(--verbose):削除の詳細表示
削除後に削除対象(ファイル名)を出力させてくれます。
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$ touch file1
mitsu@miitsu-computer:~/デスクトップ$ ls
file1 metawork permission
mitsu@miitsu-computer:~/デスクトップ$ rm -v file1
'file1' を削除しました
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$
-d(directory):--dir:ディレクトリを削除する
削除ディレクトリを選択して削除できます。ただ削除ディレクトリが空でないと削除できないのでご注意ください。
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$ mkdir directory2
mitsu@miitsu-computer:~/デスクトップ$ ls
directory2 metawork permission
mitsu@miitsu-computer:~/デスクトップ$ rm -d directory2/
mitsu@miitsu-computer:~/デスクトップ$ ls
metawork permission
mitsu@miitsu-computer:~/デスクトップ$
まとめ
rmコマンドについて下記にまとめます。
要点
・ファイルやディレクトリを削除するコマンド
・削除に関してオプションを付与することにより便利な使い方ができる
・使い方を誤ると大変なことになる
以上となります。基本的なコマンドですが操作内容を誤ると大変なことになりますので、ぜひ覚えていってください。
ほかにも役立つほかのコマンドの説明や設定方法についても解説しておりますので、ご覧いただけますと幸いです。