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 do
Schleife, bei der der Index i
jede Datei ab dem aktuellen Verzeichnis durchläuft. Das ist, was der find
Befehl auflistet. Sie können die Syntax nachschlagen, indem Sie ausführen man find
. Anschließend müssen Sie mv
diese Datei ( $i
) an den neuen Speicherort verschieben ( ) . Dieser neue Speicherort wird durch den ursprünglichen Dateinamen ( echo $i
) angegeben, der durch den Stream-Editor ( sed
mit 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 find
nach Verzeichnissen ( -type d
) anstatt nach Dateien ( -type f
) suchen und diese Verzeichnisse dann entfernen ( rmdir
was 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. :)