bash でフォルダを削除して再作成する

bash でフォルダを削除して再作成する

私は、ファイルがダウンロードされるたびにダウンロード フォルダーを整理するために、プログラム hazel を使用しています。現在は、ダウンロード フォルダー内のすべてのフォルダーを削除して再作成するシェル スクリプトを毎週実行するように指示しています。

ダウンロード フォルダー内のすべてのフォルダーを再度繰り返してその内容を削除することで、これを実行する (フォルダーの削除/フォルダーの再作成) より簡単な方法はありますか?

cd ~/Downloads;
rm -rf Archives;
rm -rf DMGs;
rm -rf Documents;
rm -rf Fonts;
rm -rf Mail\ Attachments;
rm -rf Mobile\ Provisioning;
rm -rf Music;
rm -rf Photoshop;
rm -rf Pictures;
rm -rf Videos;

mkdir Archives;
mkdir DMGs;
mkdir Documents;
mkdir Archives;
mkdir Fonts;
mkdir Mobile\ Provisioning;
mkdir Mail\ Attachments;
mkdir Music;
mkdir Photoshop;
mkdir Pictures;
mkdir Videos;

答え1

いかがでしょうか:

cd ~/Downloads && rm -rf */*

それとも何か見逃しているのでしょうか?

注意: これにより、最上位レベルの直下にある隠しファイル/ディレクトリは削除されません。

答え2

フォルダ構造全体をそのままにしてファイルを削除する場合は、

find . -type f -print -exec rm '{}' ';'

rm -rf */*他の人が提案しているように、最上位のフォルダ構造だけをそのままにしておく必要がある場合は、

答え3

実際には非常に簡単です。次のようにします。rm -rf */*

答え4

次のコマンドも実行できます:

find ~/Downloads -type f -exec rm {} \;

これにより、そのディレクトリ内のすべてのファイルが削除されます。

rm {} \;実際に実行する前にを に置き換えてls -l {} \;、ファイルを削除する前にすべてが正常かどうかを確認します。

関連情報