コマンド

【コマンド】rmでファイル・ディレクトリの削除【-rfに要注意】

どうも、つよぽんです!

今回は、基本コマンドの1つ「rm」コマンドについて解説します。

今回の記事は「ターミナル」「コマンド」を事前に知っている前提で話を進めていくので、これらがわからない方は先に「ターミナルとは?コマンドとは?【コマンド操作の基礎知識】」を読むことをオススメします。

あわせて読みたい
ターミナルとは?コマンドとは?【コマンド操作の基礎知識】今回は「ターミナルとは?コマンドとは?」について解説します。コマンド操作はバックエンド開発やモダンなフロントエンド開発ではかかせないスキルとなるので、まずは「ターミナル」「コマンド」がわからなくて、バックエンド開発や「React」「Vue」をつかったフロント開発に興味がある人は読むと良いでしょう。...

今回の記事は次のような方に向けて書きました。

想定読者
  1. rmコマンドって何?
  2. rmコマンドってどう使うの?
  3. rmコマンドでディレクトリを削除するにはどうすれば良いの?

この記事を読み終えた後のあなたは次のことがわかるようになっています。

この記事を読み終えた後のあなた
  • rmコマンドで出来ることがわかるようになる
  • rmコマンドの使い方がわかるようになる
  • rmコマンドでディレクトリの削除方法がわかるようになる

今回の記事の内容は以下の解説記事でも使っているスライドの内容をさらに詳しく解説したものとなります。

あわせて読みたい
【コマンドライン】rmコマンドを覚える【rmdirの解説も有り】今回はコマンドラインの基本操作の1つ「rm」コマンドについて学習します。rmコマンドはファイルを削除するためのコマンドです。また、rmコマンドにオプションをつけることでディレクトリの削除も出来るようになります。ディレクトリ削除用のコマンドにはrmdirというのもあります。...

それでは以下の内容で話を進めていきます。

今回の内容
  1. rmコマンドとは
  2. rmコマンドの使い方
  3. rmコマンドでディレクトリを削除する方法

rmコマンドとは

「rm」コマンドは「ファイルを削除する」コマンドです。

通常はファイルの削除しかできませんが、あるオプションをつけることで「ディレクトリの削除」も出来るようになります。

「ディレクトリの削除方法」については後ほど解説します。

まずはrmコマンドの基本である「ファイルの削除」から覚えていきましょう。

rmコマンドの使い方

rmコマンドの書式

rmコマンドの使い方はターミナル上で次のように打ち込んで実行します。

rm 削除したいファイル名

例えば、ターミナル上で現在いるディレクトリ内にある「hello.txt」というファイルを削除したいとします。

その場合は「rm hello.txt」とすることで、「hello.txt」ファイルを削除します。

rmコマンドでファイル削除した様子(画像)

以下の画像は、rmコマンドを使って、現在いるディレクトリ内にある「hello.txt」という名前のファイルを削除した様子を表したものです。(※画像をクリックすると別タブで画像が開きます)

「rm」コマンドでファイルを削除する様子「rm」コマンドでファイルを削除する様子

上の画像を見ると「rm hello.txt」を実行する前のディレクトリ内を「ls」コマンドで確認したところ、「hello.txt」ファイルが存在しているのがわかります。

反対に、「rm hello.txt」を実行した後に「ls」コマンドでディレクトリ内を確認したところ、「hello.txt」ファイルがなくなっているのがわかります。

rmコマンドでディレクトリを削除する方法

オプション無しrmコマンドはディレクトリを削除できない

以下の画像は先ほど同じ形式で「rm ファイル名」ではなく「rm ディレクトリ名」でコマンドを実行したときの様子です。(※画像をクリックすると別タブで画像が開きます)

オプション無しのrmコマンドでディレクトリを指定しても削除できないオプション無しのrmコマンドでディレクトリを指定しても削除できない

上の画像を見ると、コマンドを実行した後「rm: how-to-use-ls: is a directory」というメッセージが表示されているのがわかるかと思います。

意味は「how-to-use-ls: はディレクトリです」となります。

その後、lsコマンドでディレクトリ内を確認しても「how-to-use-ls」ディレクトリが存在していることから、コマンドの実行に失敗、つまりディレクトリの削除に失敗したことがわかります。

rmではなくrmdirコマンドではどうか?

実は、ディレクトリ削除用のコマンドとして「rmdir」というコマンドが存在します。

しかし、このコマンドは空のディレクトリしか削除できないので、ディレクトリ内にファイルが存在しても、そのディレクトリを削除したいときには不便です。

以下の画像はrmdirコマンドを実行したときの様子をあらわしたものです。(※画像をクリックすると別タブで画像が開きます)

rmdirはディレクトリ内が空で無いと使えないrmdirはディレクトリ内が空で無いと使えない

rmdir how-to-use-ls」と実行したときに、「Directory not empty」という文字が表示されているのがわかります。

その後、lsコマンドでディレクトリ内を確認しても、削除しようとした「how-to-use-ls」ディレクトリが残っているので、ディレクトリの削除に失敗したことがわかります。

「rm -r」でディレクトリを削除する

中身が存在するディレクトリを削除したいときはどうすれば良いのでしょうか?

結論から言うと「-r」オプションをつけることで削除できます。

以下の画像は「rm -r ディレクトリ名」でコマンドを実行した様子をあらわしたものです。(※画像をクリックすると別タブで画像が開きます)

「rm -r」でディレクトリをした様子「rm -r」でディレクトリをした様子

上の画像をみると「rm -r how-to-use-ls」を実行した後、何もメッセージが表示されていないことがわかります。

そして、コマンド実行後のディレクトリ内をlsコマンドで確認すると「how-to-use-ls」ディレクトリがなくなっているのがわかります。

「rm -r」でも一気にディレクトリを削除できないときがある

以下の画像のように「rm -r」でディレクトリを指定しても、何かしらメッセージが表示されて、一気に削除できないときがあります。(※画像をクリックすると別タブで画像が開きます)

「rm -r」でもディレクトリを一気に削除できないときがある「rm -r」でもディレクトリを一気に削除できないときがある

上の画像と同じように、「rm -r」でディレクトリ削除時にメッセージが表示されて、一気に削除できないとき、1つ1つメッセージの対応をする必要があるのでしょうか?

結論を言うと、メッセージを表示させないで済む方法があります。

それは「-r」オプションと一緒に「-f」オプションも付けることです。

「rm -rf」で問答無用でディレクトリを削除する

「-f」は削除権限さえあれば、なんの確認も無しに削除するオプションとなります。

そのため、「-f」を使うときは特に注意して「本当に削除して良いファイルか?本当に削除して良いディレクトリか?」というのを自問自答してください。

以下の画像は「rm -rf ディレクトリ名」でディレクトリを削除した様子をあらわしたものです。(※画像をクリックすると別タブで画像が開きます)

「rm -rf」をすると問答無用でディレクトリを一気に削除する(削除権限がある場合)「rm -rf」をすると問答無用でディレクトリを一気に削除する(削除権限がある場合)

さきほど「rm -r」を実行したときはメッセージが表示されましたが、今回の「rm -rf」では何のメッセージも表示されず、ディレクトリが削除されているのがわかります。

まとめ

今回の話をまとめると次のとおりです。

今回のまとめ
  • rmはファイルを削除するコマンド
  • 書式は「rm ファイル名」
  • rmコマンドでディレクトリを削除したいときは「-r」オプションを付けて、「rm -r ディレクトリ名」とする
  • 「-r」オプションを付けても、メッセージが出て一気に削除できないときは「-f」も追加して「rm -rf ディレクトリ名」で実行する

今回の内容は以下の記事内のスライドの補足資料として作成しました。スライドの全部を確認したい方は以下の記事も参照して頂けたらと思います。

あわせて読みたい
【コマンドライン】rmコマンドを覚える【rmdirの解説も有り】今回はコマンドラインの基本操作の1つ「rm」コマンドについて学習します。rmコマンドはファイルを削除するためのコマンドです。また、rmコマンドにオプションをつけることでディレクトリの削除も出来るようになります。ディレクトリ削除用のコマンドにはrmdirというのもあります。...
【3つの特典付き】Webエンジニアに必要な基礎スキルを体系的に効率良く身につけたいですか?

LINE登録で無料特典を受け取る

次のような方向けに、学習をサポートするコンテンツを無料プレゼントしています。

  • Webエンジニアになりたいけど何から学習を始めれば良いかわからない
  • 今まで独学で頑張ってきたけど、独学に限界を感じてきた
  • プログラミングは出来るけど、大きめのコードが書けない

「プレゼント詳細が知りたい」「プレゼントを受け取りたい」といった方は、以下のボタンをクリックして詳細ページをご確認ください。

無料特典を受け取る

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です