Ich habe eine große Anzahl kleiner Dateien, f, die in einer Verzeichnisstruktur wie folgt angeordnet sind:
/A/B/C/f
Es gibt 11 Verzeichnisse auf der Ebene von A mit jeweils etwa 100 Verzeichnissen auf der Ebene von B mit jeweils etwa 30 Verzeichnissen auf der Ebene von C mit jeweils einer Datei f.
Wie verschiebe ich alle Dateien um eine Ebene? Zum Beispiel angesichts dieser Gruppe von Dateien ...
/ A / B / C / f1
/ A / B / C / f2
/ A / B / C / f3
/ A / B / C / f4
Ich möchte, dass das Verzeichnis /A/B/
4 Dateien enthält, f1 bis f4. Das Entfernen von Verzeichnissen C ist nicht erforderlich.
Ich hoffe , dies wird ein Problem gelöst, möglicherweise mit find
, xargs
und whatnot
. Irgendwelche Ideen?
Prost,
James
Meine erste Vermutung ist
Solange Sie nicht angeben
-depth
, sollte es in Ordnung sein. Ich habe es NICHT ausprobiert, also testen Sie es zuerst, bevor Sie sich dazu verpflichten.quelle
mv
Befehle werden im aktuellen Verzeichnis ausgeführt, tun..
also nicht das, was Sie hoffen. Siehe meine Antwort für Lösungen. @ jl6: Die Shell hat nichts damit zu tun..
, das wird vom Kernel erledigt.Wenn Sie nur bewegen , Dateien möchten , die in Blatt Verzeichnisse sind (dh Sie nicht verschieben wollen ,
/A/B/file
um ,/A
wennB
Verzeichnisse enthält) , dann sind hier ein paar Möglichkeiten , dies zu tun:Beides erfordert dies
Dieser funktioniert:
Dies wird schneller sein, aber es mag keine leeren Quellverzeichnisse:
quelle