ディレクトリやファイルの削除は、どのオペレーティングシステムでも最も基本的でありながら重要な機能の一つです。Linuxでは、ウィンドウ環境を実行している場合、ファイルマネージャーアプリケーションを使用してファイルを検索し、削除できます。SSH経由でリモートログインしている場合、LinuxコンピューターにGUIがインストールされていない場合、あるいは削除対象をより細かく制御したい場合など、様々な理由が考えられます。Linuxのあらゆる機能と同様に、コマンドラインからディレクトリやファイルを削除することが必要、あるいは望ましい理由は数多くあります。
このハウツーでは、ディレクトリとファイルを削除するrmコマンドの使い方を紹介します。コマンドの基本と、ファイルとディレクトリの両方を削除する方法、そしてこのコマンドを最大限に活用するための拡張機能についても紹介します。ファイルの場所を変更したい場合は、Linuxでファイルを移動および名前変更する方法に関する記事をご覧ください。
もちろん、このハウツーはディレクトリとファイルを削除することに関するものなので、指示に注意深く従うように細心の注意を払う必要があります。また、これらのコマンドに慣れるまでは、空のファイルとディレクトリのサンプルを使用して作業することをお勧めします。
このハウツーで紹介するコマンドはすべて、ほとんどのLinuxマシンで動作します。Ubuntu LTSインストールを使用していますが、Raspberry Piでも実行できます。ハウツーはすべてターミナル経由で実行します。ほとんどのLinuxマシンでは、Ctrl、Alt、 Tキーを押すか、アプリケーションメニューからターミナルウィンドウを開くことができます。
Linuxでファイルを削除する方法
まずは、ファイルを1つ削除するところから始めましょう。コマンド構文は以下のとおりです。
rm <name of object to delete>
1. test1.txtという新しいファイルを作成します。
touch test1.txt
2.ディレクトリの内容を一覧表示して、ファイルが作成されているかどうかを確認します。test1.txt というファイルが表示されるはずです。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
ls
3.テストファイルを削除します。ファイルまたはフォルダを削除すると、元に戻せません。キー入力ミスによる影響を防げるゴミ箱はありません。
rm test1.txt
4.ディレクトリの内容を再度一覧表示し、ファイルが削除されたことを確認します。test1.txtがリストに表示されなくなっているはずです。
ls
Linuxでディレクトリを削除する方法
rm コマンドを使ってファイルを含むディレクトリを削除できることを示すために、同様の例を見てみましょう。これらの例では、2つの追加引数-rと-i を使用します。
1.空のディレクトリを作成します。ホームディレクトリから空のディレクトリを作成します。
mkdir test_directory
2.新しいディレクトリに移動します。
cd test_directory
3.ディレクトリ内に2つのテストファイルを作成する
touch test1.txt test2.txt
4.ディレクトリの内容を一覧表示し、ファイルが作成されていることを確認します。test1.txtとtest2.txtが一覧表示されているはずです。
ls
5.ホームディレクトリに戻る
cd ~
6.ディレクトリを削除します。このディレクトリを削除するには、 -r引数を使用する必要があります。-r引数は再帰的にディレクトリ内に移動し、ディレクトリ内のファイルをチェックして削除します。ファイルが空になったら、コマンドは戻り、クリアしたディレクトリを削除します。
rm -r test_directory
7.ディレクトリが削除されたことを確認します。リストからtest_directoryが削除されているはずです。
ls
8.上記の手順 1 ~ 5 を繰り返して、テスト ディレクトリとファイルを作成します。
9. -r引数を繰り返し、さらに-i引数を追加すると、ファイルとディレクトリが対話的に削除されます。-r引数が何をするのか分かりにくいかもしれません。 -i引数は、削除プロセスで各削除の実行前に確認(対話型)を求めるように強制します。各ステップを確認するには、「y」と入力して Enter キーを押します。
rm -ri test_directory
Linuxで書き込み禁止のファイルを削除する方法
Linuxでは、書き込み保護されているファイルを削除しなければならない場合があります。標準のrmコマンドを使用すると、保護されているファイルごとに削除するかどうかを確認するメッセージが表示されます。このような場合は、 -f force引数を使用できます。これは、rmコマンドにすべてのディレクトリとファイルを強制的に削除させるため、確認メッセージが表示されないため、これらのコマンドを使用する際には特に注意が必要です。
1. test1.txtというテストファイルを作成する
touch test1.txt
2.ユーザーとそのユーザーが属するグループだけがファイルを削除できるように、ファイルの権限を変更します。
chmod u-w test1.txt chmod g-w test1.txt
3.標準のrmコマンドを使ってファイルを削除してみましょう。標準のrmコマンドを使うと、test1.txtファイルを削除するかどうかを確認するメッセージが表示されます。今回は「いいえ」を意味する「n」をクリックします。ディレクトリ内に数百もの保護されたファイルがある場合、一つ一つ「 y」で確認する必要があり、非常に時間がかかります。
rm test1.txt
4. -f引数を使用してファイルを削除します。このコマンドを-f引数付きで実行すると、コマンドはファイルを強制的に削除し、確認を求めません。注意して使用してください。
rm -f test1.txt
これらのコマンドは非常に強力で使いやすく、削除作業を非常に簡単に実行できます。sudo rm -rf /のような、このコマンドの非常に危険なバージョンに関するジョークをオンラインで見たことがあるかもしれません。この記事を読めば、なぜそれがそれほど危険なのか、新たな洞察が得られるかもしれません。
コマンドにルート権限を与え、force および recursive 引数を使用して、基本的にシステム上のすべてのファイルを削除するコマンドを送信していることがわかります。