ディレクトリをクリア

ディレクトリをクリア

各親フォルダーには、子フォルダーとファイルを含む親フォルダーのリストがあります。親フォルダを空にするにはどうすればよいですか?つまり、すべてのファイルとサブフォルダを削除して親フォルダを空白のままにしますか?

Parent folder A
       subfolder aa
       file a
Parent folder B
       file b
       file vv
Parent folder C
       subfolder s
       subfolder n 
        file x
.
.
.
.

答え1

GNUの使用find:

find "Parent folder A" "Parent folder B" ... -mindepth 1 -delete

答え2

または、rm各親フォルダの下で削除を開始するように指示します。

# set dotglob to have * include files beginning with '.'
shopt -s dotglob
rm -r "Parent folder A"/* "Parent folder B"/* ...

答え3

最上位ディレクトリにファイルがないとします。

for i in *; do (cd "$i"; rm -rf *); done

または

for i in *; do (cd "$i"; for j in *; do rm -rf "$j"; done); done

*私はディレクトリが空の場合、削除しようとせずに特定のファイルパターンのみを含めるように簡単に変更できるため、後者を好みます。より複雑な作業にはfind

答え4

cwd(現在の作業ディレクトリ)がすべての親フォルダがある場所にあると仮定すると、次のことができます。

for i in *; do
    [[ -d "$i" ]] || continue
    rm -rf "$i"/*
done
  • 現在のフォルダ(親フォルダなど)のすべてのディレクトリを繰り返します。
  • すべてのサブフォルダのすべてのファイルとフォルダを削除する

関連情報