Löschen und Neuerstellen von Ordnern in Bash

Löschen und Neuerstellen von Ordnern in Bash

Ich verwende das Programm Hazel, um meinen Download-Ordner jedes Mal aufzuräumen, wenn eine Datei heruntergeladen wird. Ich weise es jetzt an, jede Woche ein Shell-Skript auszuführen, um alle Ordner in meinem Download-Ordner zu löschen und sie dann neu zu erstellen.

Gibt es hierfür eine einfachere Möglichkeit (Ordner löschen/Ordner neu erstellen), indem ich alle Ordner in meinem Download-Ordner erneut durchgehe und deren Inhalt lösche?

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;

Antwort1

Wie wäre es mit:

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

Oder übersehe ich etwas?

Hinweis: Dadurch werden versteckte Dateien/Verzeichnisse direkt unter der obersten Ebene nicht gelöscht.

Antwort2

Wenn Sie Dateien löschen und dabei die komplette Ordnerstruktur beibehalten möchten, verwenden Sie

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

Wenn Sie nur die Ordnerstruktur der obersten Ebene intakt benötigen, rm -rf */*wie andere vorgeschlagen haben, ist gut

Antwort3

Eigentlich ist es ganz einfach. So funktioniert es:rm -rf */*

Antwort4

Sie können auch Folgendes ausführen:

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

Dadurch werden alle Dateien in diesem Verzeichnis gelöscht.

Ersetzen Sie es rm {} \;durch ls -l {} \;„before running for real“, um vor dem Löschen der Dateien zu prüfen, ob alles in Ordnung ist.

verwandte Informationen