Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

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

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Kutscher58
Hacker
Hacker
Beiträge: 302
Registriert: 26. Mai 2005, 13:40
Wohnort: Palz (Deutsche Toskana) - FCK-Land

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

Beitrag 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.


.
Zuletzt geändert von Kutscher58 am 22. Feb 2020, 18:32, insgesamt 1-mal geändert.
Linux Mint 19.3_64 Cinnamon
Vor jeder Frage habe ich:
a) nach Howto gesucht
b) nach bestem Wissen und Gewissen gegoogelt
c) nach bestem Wissen und Gewissen SuFu genutzt
d) sämtliche Forum-Regeln und gutgemeinten 'Erstmallesen-Ratschläge' gelesen...
Benutzeravatar
framp
Moderator
Moderator
Beiträge: 4316
Registriert: 6. Jun 2004, 20:57
Wohnort: bei Stuttgart
Kontaktdaten:

Re: Ordnerebene löschen ohne die Inhalte zu entfernen

Beitrag 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.
Kutscher58
Hacker
Hacker
Beiträge: 302
Registriert: 26. Mai 2005, 13:40
Wohnort: Palz (Deutsche Toskana) - FCK-Land

Re: Ordnerebene löschen ohne die Inhalte zu entfernen

Beitrag von Kutscher58 »

Hallo Framp,

vielen Dank! Das hat super geklappt. :thumbs:
Linux Mint 19.3_64 Cinnamon
Vor jeder Frage habe ich:
a) nach Howto gesucht
b) nach bestem Wissen und Gewissen gegoogelt
c) nach bestem Wissen und Gewissen SuFu genutzt
d) sämtliche Forum-Regeln und gutgemeinten 'Erstmallesen-Ratschläge' gelesen...
Antworten