Ich habe einen Ordner mit ungefähr hundert Unterordnern und wieder hat jeder von diesen zwischen 10 und 20 Unterordner, also alles in allem ein ziemlich großer Ordnerbaum.
Kann ich auf einfache Weise alle Dateien im Baum in einen neuen Ordner auflösen oder exportieren, in dem nur ein Ordner die Dateien enthält (keine Ordner, keine Bäume)?
Ich verwende OS X 10.8, obwohl ich auch Parallels habe. Wenn es also eine Windows-Lösung gibt, kann ich das einfach ausführen, da ich das nicht jeden Tag tun muss.
macos
filesystems
sam
quelle
quelle
Antworten:
In OS X sollte dies funktionieren:
Das
find
Befehl durchsucht alle Unterverzeichnisse des Ordners/top/source/directory
und findet nur die Dateien (die Option-type f
). Wenn es einen findet, führt es aus (-exec
) der Befehlmv
in der Datei, die es gerade gefunden hat ({}
), um es in das neue Verzeichnis zu verschieben,/destination/directory
.Bitte beachten Sie, dass der Raum vor
\;
ist absolut notwendig.quelle
Dies sollte auf der Windows-Seite in funktionieren Power Shell :
Get-ChildItem -Path "C:\Source" -Recurse -Include *.* | Move-Item -Destination "C:\Destination\"
quelle
Diese Antwort basiert auf Python, sollte also sowohl unter OSX als auch unter Windows funktionieren, vorausgesetzt, Sie installieren Python (und das ist im Grunde genommen von ganz oben).
Dies sollte alle Dateien (plus Metadaten) von der kopieren
path
Struktur zumstore
Mappe.Wenn Sie sich nicht für Namenskonflikte interessieren, verwenden Sie nicht den Code zwischen
name = ""
und dasfor files in filenames
Aussagen. Was dieser Code tut, ist zu konvertieren/
zu_
und stellen Sie anschließend den gelöschten Verzeichnisnamen den Dateinamen voran.Dadurch bleibt die ursprüngliche Struktur erhalten, die Sie anschließend mit löschen können
shutil.rmtree(path)
quelle