GNU/Linux >> Linux の 問題 >  >> Linux

ホームディレクトリの空のディレクトリを再帰的に削除するにはどうすればよいですか?

find コマンドは、再帰的なファイル システム操作の主要なツールです。-type d を使用します。 find を伝える式 ディレクトリのみを見つけることに興味があります(プレーンファイルではありません)。 find の GNU バージョン -empty をサポート テスト、だから

$ find . -type d -empty -print

現在のディレクトリの下にあるすべての空のディレクトリを出力します。

find ~ -… を使用 または find "$HOME" -… ホーム ディレクトリに基づいて検索します (現在のディレクトリでない場合)。

これが正しいディレクトリを選択していることを確認したら、 -delete を使用します すべての一致を削除するには:

$ find . -type d -empty -delete

rmdir を呼び出すことができます rmdir 以降、すべてのディレクトリで ディレクトリが空の場合にのみディレクトリを削除します:

find "$HOME" -type d -exec rmdir {} + 2>/dev/null

削除されるディレクトリも印刷したい場合は、それらが空かどうかを確認する必要があります:

find "$HOME" -type d -exec bash -c 'shopt -s nullglob; shopt -s dotglob; files=("$1"/*); [[ ${files[@]} ]] || rmdir -v "$1"' -- {} \; 

これは純粋な bash の例です (バージョン 4 以降):

shopt -s globstar
for dir in **/; do
   files=("$dir"/*)
   [[ ${files[@]} ]] || rmdir -v "$dir"
done

Linux
  1. Linux で空のディレクトリとファイルを見つけて削除する方法

  2. symlink ディレクトリ内のファイルを含む、ディレクトリ内のすべてのファイルを再帰的に一覧表示する

  3. すべてのファイルとディレクトリを再帰的に一覧表示する方法

  1. LinuxまたはUNIXでユーザーのホームディレクトリを見つける方法は?

  2. bash ディレクトリ検索

  3. ディレクトリ全体で dos2unix を実行するにはどうすればよいですか?

  1. ディレクトリ構造を維持しながら、ファイル拡張子でファイルを再帰的にコピーするにはどうすればよいですか?

  2. ディレクトリでのみ再帰的な chmod を実行するにはどうすればよいですか?

  3. ディレクトリツリーで最も古いファイルを見つけるにはどうすればよいですか