Hallo,
ich komme grade bei einem Problem nicht weiter und habe im Moment keine Idee mehr, wonach ich noch suchen müsste.
Das Problem ist folgendes:
Ich habe eine Verzeichnisstruktur wie diese (nur noch wesentlich komplexer):
~/Dokumente/quellverzeichnis$ tree . ├── uv1 │ ├── uuv1 │ │ ├── uuuv1 │ │ │ └── uuuuv1 │ │ ├── uuuv2 │ │ └── uuuv3 │ ├── uuv2 │ └── uuv3 ├── uv2 └── uv3 10 directories, 0 files
Nun dachte ich, ich könnte sämtliche Ordner mit unveränderten Inhalten in einen einzigen Ordner einfach so verschieben, indem ich
find -name "*uv*" -type d -print0 | xargs -0 mv {} ~/Dokumente/zielverzeichnis/
verwende.
Das habe ich also eingegeben, dachte an nichts Böses...
Aber das Ergebnis war dann das:
find -name "*uv*" -type d -print0 | xargs -0 mv {} ~/Dokumente/zielverzeichnis/ mv: der Aufruf von stat für »{}“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mv: das Verschieben von »./uv1“ in ein Unterverzeichnis seiner selbst (»./uv1/uuv3/uv1“) ist nicht möglich mv: der Aufruf von stat für »./uv1/uuv1/uuuv3“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mv: der Aufruf von stat für »./uv1/uuv1/uuuv2“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mv: der Aufruf von stat für »./uv1/uuv1/uuuv1“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mv: der Aufruf von stat für »./uv1/uuv1/uuuv1/uuuuv1“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden tree . └── uv1 └── uuv3 ├── uuv1 │ ├── uuuv1 │ │ └── uuuuv1 │ ├── uuuv2 │ └── uuuv3 ├── uuv2 ├── uv2 ├── uv3 └── zielverzeichnis 11 directories, 0 files
Weil ich mir da schon denken konnte, daß es irgendetwas mit der Pfadangabe zu tun haben müsste/könnte, habe ich als Nächstes das hier probiert:
find -name "*uv*" -type d -print0 | xargs -0 mv {} home/User1/Dokumente/zielverzeichnis/
Das gab zwar eine Änderung des Ergebnisses, und zwar:
find -name "*uv*" -type d -print0 | xargs -0 mv {} home/User1/Dokumente/zielverzeichnis/ mv: der Aufruf von stat für »{}“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mv: der Aufruf von stat für »home/User1/Dokumente/zielverzeichnis/“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mv: das Verschieben von »./uv1“ in ein Unterverzeichnis seiner selbst (»./uv1/uuv3/uv1“) ist nicht möglich mv: der Aufruf von stat für »./uv1/uuv1/uuuv3“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mv: der Aufruf von stat für »./uv1/uuv1/uuuv2“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mv: der Aufruf von stat für »./uv1/uuv1/uuuv1“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden mv: der Aufruf von stat für »./uv1/uuv1/uuuv1/uuuuv1“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden tree . └── uv1 └── uuv3 ├── uuv1 │ ├── uuuv1 │ │ └── uuuuv1 │ ├── uuuv2 │ └── uuuv3 ├── uuv2 ├── uv2 └── uv3 10 directories, 0 files
Das Zielverzeichnis mit dem schönen Namen "zielverzeichnis" war in beiden Fällen übrigens leer. Vor dem zweiten Versuch musste ich es außerdem neu anlegen - damit wußte ich dann, daß es beim ersten Versuch mitverschoben worden ist (erst dachte ich, der Befehl "mv" hätte es dort angelegt, wo und weil es noch nicht existierte).
Wie gesagt, im Moment sind mir die Ideen ausgegangen, wonach ich noch suchen oder googlen könnte. Vorher hatte ich bereits verschiedene Varianten mit "xargs" und "-exec (und Variationen der Wildcard-Platzierung, sowie Schreibweisen der Klammer, {}, '{}', "{}" ... etc.) durch (ob die Option "-type d" unbedingt sein müsste, wie es mit und ohne "-print0" funktioniert, z.B., fällt mir grade noch ein).
Vielleicht weiß ja jemand, der diese Kombination häufiger für solche Aufgaben einsetzt, gleich Bescheid, auf was für eine Schwierigkeit/Besonderheit ich da gestoßen bin ...oder ob es eigene Dummheit/Blindheit grade ist?
Vielen Dank schon mal für einen Hinweis!