• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Kopier-Algorithmus

g00rke

Empire
Registriert
18.09.10
Beiträge
87
Hallo liebe apfeltalker,

ich bin seit einer Woche endlich wieder stolzer Besitzer eines MBPR late 2013 und bin auch wieder fleißig am machen. Zu diesem Zeitpunkt bin ich gerade auf folgendes Problem gestoßen:

Mir liegt eine Ordnerstruktur in folgendem Stil vor:

ABC.Ordner01
ABC.Ordner02
ABC.Ordner03
...
ABC.OrdnerNN

In jedem Ordner liegt eine oder mehrere Dateien, die Namen variieren stark von einander. Ich möchte jetzt alle Daten aus den Ordnern ABC.Ordner in einen gemeinsamen Ordner XYZ.Ordner kopieren. Kann ich hierfür ein Script schreiben und wenn ja wie? Stehe total auf dem Schlauch und finde jede Hilfe toll.

Danke und bis dahin
g00rke
 
Ich würde das im Terminal mit einem find machen. Skript ist dazu nicht notwendig:

Code:
cd /Pfad/zum/Ausgangsverzeichnis
find . -type f -exec cp {} /Pfad/zum/Zielverzeichnis \;

Kopie alle Dateien aus Unterordnern im Ausgangsverzeichnis nach Zielverzeichnis.
 
Okay, aber mein Problem ist, ich habe ewig viele Ordner und möchte die nervige Arbeit umgehen in jeden Ordner selbst rein zu müssen, dass soll er automatisch machen. Die Ordner heißen alle gleich und sind mit einer fortlaufenden Zahl nummeriert...
 
Aber die Verzeichnisse ("ABC.Ordner01", ...) liegen doch alle in einem gemeinsamen Unterverzeichnis? Oder habe ich dich falsch verstanden?
 
Das habe ich undeutlich erklärt. Die Ordner ABC.Ordner01 -> ABC.OrdnerXX liegen in
/media/exthdd2
und kopieren möchte ich Sie nach
/media/exthdd2/XYZ.Ordner
 
Genau, dann nimmst du einfach diese beiden Pfade und setzt sie oben ein. Damit werden alle Dateien in eine flache Hierarchie im Zielverzeichnis kopiert. Oder haben wir immer noch ein Verständnisproblem? :)
 
Also wenn ich deinen Code eingebe passiert aus mir nicht verständlichen Gründen nichts, habe aber dein Code geändert in:

Code:
find ABC.Ordner* -iname '*.jpg' -exec mv {} "/media/exthdd2/XYZ.Ordner" \;

Damit hat es einwandfrei funktioniert :-) Danke für deine Hilfe!