Linuxターミナルでファイルとディレクトリを削除する方法

rm および  rmdir Linuxでは、MacOSの、および他のUnixライクなオペレーティング・システム上で削除ファイルやディレクトリをコマンド。これらは、WindowsおよびDOSのdel および  deltree コマンドに似ています。これらのコマンドは非常に強力で、かなりの数のオプションがあります。

を使用rmrmdirて削除されたファイルとディレクトリは、ごみ箱に移動されないことに注意してください。それらはすぐにコンピュータから削除されます。これらのコマンドを使用して誤ってファイルを削除した場合、ファイルを復元できる唯一の方法はバックアップからです。

rmでファイルを削除する方法

最も単純なケースは、現在のディレクトリ内の1つのファイルを削除することです。入力rmコマンド、スペース、その後、削除したいファイルの名前を。

rm file_1.txt

ファイルが現在の作業ディレクトリにない場合は、ファイルの場所へのパスを指定します。

rm ./path/to/the/file/file_1.txt

に複数のファイル名を渡すことができますrm。これを行うと、指定したすべてのファイルが削除されます。

rm file_2.txt file_3.txt

ワイルドカードを使用して、削除するファイルのグループを選択できます。*複数の文字を表し、?単一の文字を表します。このコマンドは、現在の作業ディレクトリにあるすべてのpng画像ファイルを削除します。

rm * .png

このコマンドは、1文字の拡張子を持つすべてのファイルを削除します。たとえば、これによりFile.1とFile.2は削除されますが、File.12は削除されません。

rm *。?

ファイルが書き込み保護されている場合は、ファイルを削除する前にプロンプ​​トが表示されます。yまたはnで応答し、「Enter」を押す必要があります。

rmワイルドカードで使用するリスクを減らすには、-i(対話型)オプションを使用します。これには、各ファイルの削除を確認する必要があります。

rm -i * .dat

-f (強制)オプションは、対話型の反対です。ファイルが書き込み保護されている場合でも、確認のプロンプトは表示されません。

rm-fファイル名

rmでディレクトリを削除する方法

空のディレクトリを削除するには、-d (ディレクトリ)オプションを使用します。ファイル名の場合と同じように、ディレクトリ名にワイルドカード(*および?)を使用できます。

rm-dディレクトリ

複数のディレクトリ名を指定すると、指定した空のディレクトリがすべて削除されます。

rm -d directory1 directory2 / path / to / directory3

空でないディレクトリを削除するには、-r(再帰的)オプションを使用します。明確にするために、これにより、ディレクトリと、その中に含まれるすべてのファイルとサブディレクトリが削除されます。

rm -r directory1 directory2 directory3

ディレクトリまたはファイルが書き込み保護されている場合は、削除の確認を求めるメッセージが表示されます。空でないディレクトリを削除し、これらのプロンプトを抑制するには、-r(再帰的-f)オプションと(強制的)オプションを一緒に使用します。

rm-rfディレクトリ

ここでは注意が必要です。rm -rfコマンドを間違えると、データの損失やシステムの誤動作を引き起こす可能性があります。それは危険であり、注意が最善の策です。rm -rfコマンドによって削除されるディレクトリ構造とファイルを理解するには、コマンドを使用しtreeます。

apt-get Ubuntuまたは別のDebianベースのディストリビューションを使用している場合は、このパッケージをシステムにインストールするために使用 します。他のLinuxディストリビューションでは、代わりにLinuxディストリビューションのパッケージ管理ツールを使用してください。

sudo apt-get install tr​​ee

treeコマンドを実行すると、実行元のディレクトリの下にあるディレクトリ構造とファイルのわかりやすい図が作成されます。

treeコマンドへのパスを指定して、ファイルシステム内の別のディレクトリからツリーを開始することもできます。

ツリーパス/宛先/ディレクトリ

このrmコマンドには--one-file-system, --no-preserve-root, --preserve-rootオプションもありますが、これらは上級ユーザーにのみ推奨されます。何か問題が発生した場合、誤ってすべてのシステムファイルを削除してしまう可能性があります。詳細については、コマンドのマニュアルページを参照してください。

rmdirでディレクトリを削除する方法

rmdirディレクトリを削除するために使用できる、と呼ばれる別のコマンドがあります。違いrmとはrmdirつまりrmdir空になっているだけで、削除のディレクトリができます。ファイルが削除されることはありません。

最も単純なケースは、1つの空のディレクトリを削除することです。と同様にrm、複数のディレクトリ名をrmdir、またはディレクトリへのパスに渡すことができます。

名前をrmdir:に渡して、現在のディレクトリ内の1つのディレクトリを削除します。

rmdirディレクトリ

名前のリストを次の場所に渡して、複数のディレクトリを削除します  rmdir

rmdir directory1 directory2 directory3

そのディレクトリへのフルパスを指定して、現在のディレクトリにないディレクトリを削除します。

rmdir / path / to / directory

空でないフォルダを削除しようとするrmdirと、エラーメッセージが表示されます。次の例でrmdirは、clientsディレクトリを正常かつサイレントに削除しprojectsますが、ファイルが含まれているため、ディレクトリの削除を拒否します。projectsそれがあったとその中のファイルは変更されませんようディレクトリは正確に残っています。

ときにrmdir「ディレクトリ空ではありません」というエラーを与え、それはコマンドラインでそれに渡されたディレクトリの処理を停止します。4つのディレクトリを削除するように要求し、最初のディレクトリにファイルが含まれているrmdir場合は、エラーメッセージが表示され、それ以上何もしません。--ignore-fail-on-non-empty他のディレクトリが処理されるように、オプションを使用してこれらのエラーを無視するように強制できます。

次の例では、2つのフォルダがに渡されています。rmdirこれらはwork/reportswork/quotesです。この--ignore-fail-on-non-emptyオプションはコマンドに含まれています。work/reportsフォルダには、その中のファイルを持っているので、rmdirそれを削除することはできません。この--ignore-fail-on-non-emptyオプションrmdirは、エラーを無視して、処理する必要のある次のフォルダーであるに移動することを強制しますwork/quotes。これは空のフォルダであり、rmdir削除します。

これが使用されたコマンドでした。

rmdir--ignore-fail-on-non-empty work / reports / work / quotes

あなたは使用することができます  -p ディレクトリを削除するには、あまりにもその親ディレクトリを削除するには(親)オプションを選択します。このトリックが機能rmdirするのは、ターゲットディレクトリから開始してから、親に戻るためです。そのディレクトリは空になっているはずなので、によって削除できます。rmdirこのプロセスは、に提供されたパスのステップアップを繰り返しrmdirます。

次の例では、渡されるコマンドは次のとおりrmdirです。

rmdir -p work / invoices

要求に応じて、invoicesworkディレクトリの両方が削除されます。

Bashを使用している場合でも、他のシェルを使用している場合でも、Linuxには、ターミナルのコマンドラインから直接ディレクトリやファイルを削除するための柔軟で強力なコマンドが用意されています。一部の人々は、ターミナルを中心に展開するワークフローを好む。他の人はその問題で選択の余地がないかもしれません。GUIがインストールされていないサーバー、またはRaspberryPiなどのヘッドレスシステムへのリモートセッションで動作している可能性があります。これらのコマンドは、そのグループの人々に最適です。

ただし、どのタイプのワークフローを使用する場合でも、これらのコマンドはシェルスクリプトに含めるのに非常に適しています。スクリプトがcronジョブによってトリガーされた場合、不要なログファイルの削除などの日常的なハウスキーピングタスクを自動化するのに役立ちます。そのユースケースを調査する場合は、これらのコマンドの能力を覚えて、すべてを注意深くテストし、常に最新のバックアップを維持してください。