Möglicherweise müssen Sie dies mit cygwin tun , was ich jedem empfehlen würde, der (noch?) Die M $ Windoze-Spyware ausführt.
So etwas sollte funktionieren. Führen Sie es in dem Verzeichnis aus C:/Users/(Username)/Desktop/(Parent-Collection name)/(das in Cygwin als /cygdrive/c/Users/(Username)/Desktop/(Parent-Collection name)/):
for i in `find . -name "*" -type f`;
do mv $i `echo $i | sed 's/.*\/\([^/]*\)/\1/'`;
done
Dadurch werden alle Dateien in allen Verzeichnissen darunter (Parent-Collection name)nach verschoben (Parent-Collection name). Dies ist insbesondere eine doSchleife, bei der der Index ijede Datei ab dem aktuellen Verzeichnis durchläuft. Das ist, was der findBefehl auflistet. Sie können die Syntax nachschlagen, indem Sie ausführen man find. Anschließend müssen Sie mvdiese Datei ( $i) an den neuen Speicherort verschieben ( ) . Dieser neue Speicherort wird durch den ursprünglichen Dateinamen ( echo $i) angegeben, der durch den Stream-Editor ( sedmit dem Sie nachsehen können man sed) ausgeführt wird, der so eingestellt ist, dass der Pfad entfernt wird, sodass der Basisdateiname erhalten bleibt.
Ich empfehle es zu testen (erstelle ein Verzeichnis mit ein paar Unterverzeichnissen, die leere Textdateien oder ähnliches enthalten) und stelle sicher, dass du ein Backup hast!
Sie können dann alle (jetzt leeren) Verzeichnisse unterhalb Ihres aktuellen Verzeichnisses entfernen:
for i in `find . -name "*" -type d`;
do rmdir $i;
done
Der einzige Unterschied besteht darin, dass Sie findnach Verzeichnissen ( -type d) anstatt nach Dateien ( -type f) suchen und diese Verzeichnisse dann entfernen ( rmdirwas nur bei leeren Verzeichnissen funktioniert).
Ist Linux nicht cool? Cygwin gibt Ihnen einen Teil der Leistungsfähigkeit von Linux und könnte ein erster Schritt sein, um sich damit vertraut zu machen, sodass Sie eines Tages vielleicht sogar die Möglichkeit haben, auf etwas wie Ubuntu umzusteigen. :)