Verzeichnisse löschen


0

Ich habe eine Liste der übergeordneten Ordner. In jedem übergeordneten Ordner befinden sich Unterordner und Dateien. Wie kann ich die übergeordneten Ordner leeren - dh alle Dateien und Unterordner entfernen und die übergeordneten Ordner leer lassen?

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

Antworten:


5

Mit GNU find:

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

3

Alternativ können Sie rmdas Entfernen in jedem übergeordneten Ordner starten:

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

0

Angenommen, es befinden sich keine Dateien im obersten Verzeichnis:

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

oder

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

Ich bevorzuge letzteres, da es nicht versucht, zu entfernen, *wenn das Verzeichnis leer ist, und es leicht geändert werden kann, um nur einige Dateimuster einzuschließen. Für etwas komplizierteres verwenden Sie find.


0

Unter der Annahme, dass sich in cwd (aktuelles Arbeitsverzeichnis) alle übergeordneten Ordner befinden, können Sie Folgendes tun:

for i in *; do
    [[ -d "$i" ]] || continue
    rm -rf "$i"/*
done
  • Durchlaufen aller Verzeichnisse im aktuellen Ordner (dh der übergeordneten Ordner)
  • Entfernen Sie alle Dateien und Ordner in jedem Unterordner

1
Eek. Was wird Ihrer Meinung nach mit Dateinamen passieren, die Leerzeichen enthalten? Nicht analysierenls .
Muru

@muru - die Räume sind nicht wichtig. Der Wert von $IFSis und mehr sind die aktuellen -fEinstellungen für die Erzeugung von Dateinamen in der Shell . thomas - dein ding könnte auf ungewollte wege rennen.
mikeserv

mkdir 'files ..'zum Beispiel
Jeff Schaller

@muru - du hast recht ... ich hätte das sehen sollen. Ich habe die Antwort aktualisiert. Danke fürs bemerken.
Thomas Espe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.