Seite 1 von 1

[gelöst] Ordnerebene löschen ohne die Inhalte zu entfernen

Verfasst: 22. Feb 2020, 13:11
von Kutscher58
Ich habe einen Ordner(1) mit vielen Unterordnern(a,b,c, usw.). Nun möchte ich die Unterordner löschen, ohne dabei die in ihnen liegenden Dateien zu entfernen.
Am Ende sollen alle Dateien im Ordner (1) liegen und die Unterordner (a,b, c, usw.) gelöscht sein.

Gibt es für diesen Vorgang einen Konsolenbefehl? Wenn ja, wo finde ich den bzw. wie lautet der.

Danke im voraus.


.

Re: Ordnerebene löschen ohne die Inhalte zu entfernen

Verfasst: 22. Feb 2020, 14:25
von framp
Disclaimer:
Wie immer gilt bei solchen Aktionen: Teste ausgiebig - noch besser - habe ein Backup ;)

Annahmen:
1) Du befindest Dich im Ordner (1)
2) Keine der Dateien der Unterordner a, b, c heissen gleich

Schritte:
Zerlegen des Problems in zwei Schritte: Moven der Dateien und Loeschen der Verzeichnisse.
1)

Code: Alles auswählen

find . -type f -exec echo "mv {} ." \;
zeigt Dir alle Dateien an die ins aktuelle Verzeichnis gemoved werden wuerden.
Wenn das alles OK ist
2)

Code: Alles auswählen

find . -type f -exec mv {} . \;
Danach befinden sich alle Dateien im aktuellen Verzeichnis.
3)

Code: Alles auswählen

find . -type d -exec "echo rmdir {}" \;
zeigt Dir alle Unterverzeichniss an die geloescht werden wuerden.
Wenn das alles OK ist

Code: Alles auswählen

find . -type d -exec rmdir {} \;
Man kann das Ganze natuerlich noch so machen dass man erst einmal die Dateien der Unterverzeichnisse kopiert und nicht loescht, dann testet ob sich alle Dateien aus den Unterverzeichnissen im aktuellen Verzeichnis befinden und dann die Unterverzeichnisse mit all ihren Dateien loeschen. Ist aber aufwaendiger und die Frage ist ob sich diese Aktion lohnt da das vermutlich nur ein one time shot ist.

Re: Ordnerebene löschen ohne die Inhalte zu entfernen

Verfasst: 22. Feb 2020, 18:29
von Kutscher58
Hallo Framp,

vielen Dank! Das hat super geklappt. :thumbs: