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.