これは Google 検索で上位に表示されるため、最も簡単な答えは次のとおりです。
rm $directoryPath/*
$directoryPath は、空にするディレクトリです。クレジットは cbm3384 に送るべきです (何らかの理由でこの回答に反対票が集まっているのはなぜですか?)
確認したくない場合:
rm -f $directoryPath/*
信じられない場合は man rm
を試してください または
mkdir -p 1/2/3; echo 'hello1' > 1/hello1.txt; echo 'hello2' > 1/2/hello2.txt;echo 'hello3' > 1/2/3/hello3.txt
rm 1/2/*
上記は、各フォルダーに「helloX.txt」を持つディレクトリ構造を作成します (X はディレクトリ レベルです)。 rm 1/2/*
hello2.txt
を削除します 他の構造はそのまま残します。
rm */*/*
も hello2.txt
のみを削除します .パターンに一致するのはこれだけです。
Cakephp の tmp-directory をクリーンアップし、ディレクトリ構造をそのままにしておく Makefile の例:
clean:
-rm -f tmp/*
-rm -f tmp/*/*
-rm -f tmp/*/*/*
-rm -f tmp/*/*/*/*
rm
の前のマイナス 「エラーで停止しない」ことを意味します (削除されていないディレクトリはエラーを返します)。レベルを保存したい場合は、その行を削除してください。 2 番目の rm 行はログを削除します。
何か他のことをするシステム (BSD?) をお持ちなら教えてください。
編集: これをubuntu 12.04、osx lion、およびsourceforge.netシェルでテストしました。すべてが上記の説明のように動作します。
find PATH -maxdepth 1 -type f -delete
でも これは、確認を求めたり、削除したばかりのものを出力したりすることはありません。したがって、最初に -delete アクションなしで実行し、それらが正しいファイルであることを確認することをお勧めします。
find
を使用できます -type f
で ファイルのみおよび -maxdepth 1
の場合 だから find
/path/to/directory
のサブディレクトリ内のファイルは検索しません . rm -i
削除するたびにプロンプトが表示されるので、削除を確認または拒否できます。削除のたびに確認を求められても構わない場合は、rm -fv
に変更してください。 (-f
力のために 削除)。 -v
フラグは、削除するたびに、どのファイルが削除されたかを示すメッセージが出力されるようにします。
find /path/to/directory -maxdepth 1 -type f -exec rm -iv {} \;
これは基準を満たす必要があります:
<ブロック引用>
ないディレクトリ
サブディレクトリではない
これらのサブディレクトリ内のファイルではありません。