【初心者向け】rmとrmdirコマンド「削除」- コピペで試せるオプション理解 -【Linuxコマンド入門 #6】

前回(#5)は、ファイルを作成するtouchコマンドについて学びました。

touchコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

【初心者向け】touchコマンド「空ファイルを作る」「タイムスタンプ更新」- コピペで試せるオプション理解 -【Linuxコマンド入門 #5】

Linuxのtouchコマンドとは?この記事では、空のファイル(0バイト)を作成する方法と、既存ファイルの最終更新日時(タイムスタンプ)だけを変更する方法を、初学者向けに分かりやすく解説します。

UBUNTU-linuxコマンド入門シリーズのサムネイル。この記事シリーズでは、よく使うコマンドを優先的に紹介し、シリーズを通して最低限コマンドライン操作ができるようになることを目標に紹介しています。 18 記事
シリーズ

Linuxコマンド入門

LINUXコマンドの基礎について、ゼロから最低限ファイル操作などができるようになるまでの手順を紹介します。linux系な...

今回は、ファイルやディレクトリを削除するrm やrmdirコマンドについて紹介します。

rmコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

最重要警告:Linuxに「ゴミ箱」はない

rm コマンドで削除したデータは、その瞬間に、永久に削除されます。 基本的に「元に戻す(Undo)」ことはできません。実行する前には、必ずpwdやlsで「今いる場所」と「消そうとしている対象」を二重、三重に確認するクセをつけてください。

1. rm [ファイル名] (Remove)

rmは “Remove” の略で、ファイルを削除します。

ls
# file_A.log  file_B.log  memo.txt
rm file_A.log
ls
# file_B.log  memo.txt

file_A.log が削除されました。簡単ですね。 rm file_B.log memo.txt のように、複数のファイルを一度に消すこともできます。

2. rmdir [ディレクトリ名] (Remove Directory)

rmdirは “Remove Directory” の略で、ディレクトリを削除します。

ただし、このコマンドには「中身が空のディレクトリしか削除できない」という大きな制約があります。

rmdir sample_folder

sample_folderが空でないと削除できません。そのため基本的にdirectory削除にはrmのオプション指定で行います。

3. もっと詳しく見る rm の便利オプション

3-1. 安全オプション -i (Interactive)

rm -i [ファイル名] を実行すると、「本当に削除しますか? (y/n)」と一つずつ確認してくれる機能です。 rmは、間違えると取り返しがつかないことが多いので、チェックしながら削除できます。

何が消されるのかを確認しながら削除するクセをつけると安全です。

rm text.txt -i

3-2. 再帰的にフォルダも削除 -r (Recursive)

-r は “Recursive” (再帰的) の略です。 これは「ディレクトリの中に入って、その中身を全部消して、空になったディレクトリも消す」という動作を意味します。

rm -r project

project ディレクトリが、その中にあったファイルや data ディレクトリごと、すべて削除されます。 これが、事実上の「ディレクトリ削除」コマンドとして使われています。

3-3. 強制削除 -f (Force)

-f は “Force” (強制) の略です。 このオプションを付けると、rm は一切の警告や確認なしに、強制的に削除を実行します。

オプションなしで消せない、または、追加操作が必要な例

  • 存在しないファイル名を指定 → エラーメッセージが出ます。
  • 書き込み禁止のファイル(パーミッション)を消そうとすると「消していいですか?」と聞いてくれます。

-f を付けると、それらの確認をすべて無視(Force)して削除します。

rm -f project

3-4.【危険だが便利】-f と-rを合わせて使う

たまに使うが危険な組み合わせが、-r と -f を組み合わせた rm -rf です。

  • -r (Recursive): ディレクトリを中身ごと
  • -f (Force): 確認なしで強制的に

つまり、「指定したディレクトリを、中身が何であれ、警告なしで、丸ごと削除する」という最強の削除コマンドになります。

# これを実行すると、old_project フォルダが中身ごと問答無用で消える
$ rm -rf old_project

~危険で注意が必要だが、便利な操作 rm -rf *~

rm -rf /(OS全体)と同じくらい危険ですが便利なのが「rm -rf *」です。

  • * は「そこにあるすべて」を意味します。

もしあなたが、大事なプロジェクト(~/my_project)の「古いバックアップ(old_backup)」だけを消そうとして、

# 間違い
$ cd ~/my_project/old_backup  <-- つもりだった
$ cd ~/my_project           <-- 本当はここにいた
$ rm -rf * <-- プロジェクト全体が消滅

という操作をすると大事なプロジェクト全部が削除されてしまいます。

rm -rf を実行する前は、一度キーボードから手を離し、pwd で現在地を確認し、消す対象をしっかり見直してからエンターキーを押しましょう。

第6回のまとめ

  • rm : ファイル削除
  • rm i: 安全チェック確認しながら削除
  • rm -r: ファイルとフォルダを再帰的に削除
  • rm f: 強制的に削除
  • rmdir :(空の)ディレクトリ削除

次回予告

お疲れ様でした! 今回は rm rmdirについて紹介しました。次回(#7)は、ファイルやディレクトリをコピー(複製)するcpコマンドについて紹介します。

cpコマンドの使い方紹介、Linux Ubuntu初学者向けに、よく使うオプションを優先的に紹介しています。

【初心者向け】cpコマンド「コピーを作る」- コピペで試せるオプション理解 -【Linuxコマンド入門 #7】

Linuxでファイルやフォルダをコピー(複製)するcpコマンドを学びます。ディレクトリを中身ごとコピーする-rオプションと、権限も維持する-aオプションの違いを解説。

UBUNTU-linuxコマンド入門シリーズのサムネイル。この記事シリーズでは、よく使うコマンドを優先的に紹介し、シリーズを通して最低限コマンドライン操作ができるようになることを目標に紹介しています。 18 記事
シリーズ

Linuxコマンド入門

LINUXコマンドの基礎について、ゼロから最低限ファイル操作などができるようになるまでの手順を紹介します。linux系な...