ubuntuusers.de

find nicht vorhandenen Subordner

Status: Gelöst | Ubuntu-Version: Ubuntu 18.04 (Bionic Beaver)
Antworten |

godi22

Anmeldungsdatum:
3. November 2011

Beiträge: 44

Hallo, ich komme gerade mit find nicht weiter.

Ich will überprüfen ob eine bestimmte Ordnerstruktur existiert oder nicht und wenn nicht dann die Unterordner erstellen lassen und den Inhalt hineinkopieren.

Folgende Ordnerstruktur will ich haben (* unterschiedliche Ordnernamen):

MyRoot/*/Sub1
MyRoot/*/Sub2

In manchen *-Ordner existieren gar kein Sub1 oder Sub2 Ordner. In diesem sollen die Ordner erstellt werden und der Inhalt in Sub1 verschoben werden. Dazu wollte ich find verwenden um im ersten Schritt herauszufinden ob Sub1 existiert.

1
2
# cd nach MyRoot und dann
find -type d -maxdepth 1 -not -name ./%file/Sub1

Der nächste Schritt wäre mit execute die Ordner zu erstellen, dazu muss aber erst find richtig sein. 😉

Hat jemand eine Idee wie ich find richtig einsetze?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11311

Wohnort: München

Ich würde zum Erstellen der Ordner zum Gießkannenprinzip greifen:

1
2
#!/bin/bash
mkdir -p MyRoot/*/{Sub1,Sub2}

Danach sollte es in jedem Verzeichnis die beiden Unterverzeichnisse geben und dann kannst du Dateien dorthin kopieren bzw. zu verschieben.

godi22

(Themenstarter)

Anmeldungsdatum:
3. November 2011

Beiträge: 44

Danke für deine Antwort, leider hat das nicht funktioniert. Aber der Hinweis mit dem "Gießkannenprinzip" hat mich weitergebracht.

Habe es jetzt folgend gelöst:

1
2
3
4
5
# Erstellen aller SubFolder
for dir in */; do mkdir -- "$dir"/{Sub1,Sub2}; done

# Schiebe alle Dateien in Sub1 Ordner
for dir in */; do find "$dir" -maxdepth 1 -not -type d -exec mv -t "$dir"/Sub1 -- '{}' +; done
Antworten |