Linuxでディレクトリを再帰的に検索および削除する方法


以前の記事の1つでは、Linuxのファイルシステムで最も多くのディスク容量を消費しているトップディレクトリとファイルを見つける方法について説明しました。このようなディレクトリに重要なファイルやサブディレクトリ(古いバックアップ、ダウンロードなど)が含まれていないことに気付いた場合は、それらを削除してディスクの空き容量を増やすことができます。

この短いチュートリアルでは、Linuxファイルシステムでディレクトリを再帰的に見つけて削除する方法について説明します。

上記の目的を達成するために、以下の構文を使用して rmコマンドとともにfindコマンドを使用することができます。ここでは、末尾の + 記号により、複数のディレクトリを同時に読み取ることができます。

$ find /start/search/from/this/dir -name "dirname-to-delete" -type d -exec /bin/rm -rf {} + 

以下の例では、 files_2008 というディレクトリを検索し、それを再帰的に削除します。

$ $find ~/Downloads/software -name "files_2008" -type d -exec /bin/rm -rf {} + 

検索 xargs を使用することもできます。次の構文では、 -print0 アクションを実行すると、標準出力にフルディレクトリパスを出力し、その後にNULL文字を続けることができます。

$ find /start/search/from/this/dir -name "dirname-to-delete" -type d -print0 | xargs -0 /bin/rm -rf "{}"

上記と同じ例を使用すると、次のようになります。

$ find ~/Downloads/software -name "files_2008" -type d -print0 | xargs -0 /bin/rm -rf "{}"

最後に重要なことを言い忘れましたが、あなたがあなたのデータのセキュリティについて心配しているなら、あなたはLinuxで 'ファイルとディレクトリ'を永久にそして安全に削除する3つの方法を学ぶことをお勧めします。

Linuxでのファイルとディレクトリの管理に関するもっと役に立つ記事を読むことを忘れないでください:

  1. fdupes – A Command Line Tool to Find and Delete Duplicate Files in Linux
  2. How to Find and Remove Duplicate/Unwanted Files in Linux Using ‘FSlint’ Tool
  3. 3 Ways to Delete All Files in a Directory Except One or Few Files with Extensions

この記事では、Linux上でディレクトリを再帰的に見つけて削除する方法を説明しました。このトピックに追加したい質問や追加のアイデアがある場合は、以下のコメントセクションを使用してください。