Ich habe diese Ordnerstruktur:
foo
`----> bar
Wie kann ich den Inhalt von bar
extrahieren in foo
?
Ich habe versucht mv -f bar/* .
innerhalb von foo
.
-f, –force | Vor dem Überschreiben nicht fragen
aber ich erhalte „bar/ajax
konnte nicht verschoben werden nach foo/ajax
weil das Verzeichnis nicht leer ist“
Wie kann ich das lösen?
Akzeptierte Antwort:
mv
überschreibt Dateien, aber es weigert sich, Verzeichnisse zu überschreiben . Es gibt keinen einzigen Befehl, der Verzeichnisse zusammenführt und die Quellverzeichnisse entfernt (was Sie wahrscheinlich mit mv
wollen ). Sogar rsync --remove-source-files
wird leere Verzeichnisse hinterlassen.
Sie können eine Kombination von Befehlen verwenden:
cp -a dev/. .
rm -r dev
die alles in dev
kopiert in das aktuelle Verzeichnis und entfernt dann dev
Verzeichnis.
Oder:
rsync -a --remove-source-files dev/ .
find dev -depth -type d -exec rmdir {} ;
welches rsync
verwendet um alle Dateien zu verschieben, und löscht dann die leeren Verzeichnisse, die zurückgelassen wurden.