各親フォルダーには、子フォルダーとファイルを含む親フォルダーのリストがあります。親フォルダを空にするにはどうすればよいですか?つまり、すべてのファイルとサブフォルダを削除して親フォルダを空白のままにしますか?
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
- 現在のフォルダ(親フォルダなど)のすべてのディレクトリを繰り返します。
- すべてのサブフォルダのすべてのファイルとフォルダを削除する