Ich habe einen Ordner A, der Ordner B enthält, der viele Dateien enthält. Ich möchte folderB loswerden, aber nicht dessen Inhalt. Ich möchte, dass sich diese Inhalte in Ordner A befinden. Wie kann ich das auf der Kommandozeile erreichen?
Ich habe einen Ordner A, der Ordner B enthält, der viele Dateien enthält. Ich möchte folderB loswerden, aber nicht dessen Inhalt. Ich möchte, dass sich diese Inhalte in Ordner A befinden. Wie kann ich das auf der Kommandozeile erreichen?
Antworten:
$ cd /path/to/folderA
$ mv folderB/* .
$ rmdir folderB
mv folderB/.* .
, um sie zu bewegen. @NewLinuxUser, der Punkt in Ihrer Frage ist ein Alias für das Arbeitsverzeichnis (in diesem Fall OrdnerA).
folderB/folderB
vorhanden, schlägt dies fehl. Achten Sie daher darauf, dass Sie es nicht in Skripten verwenden.
folderB
eine verrückte Anzahl von Dateien enthalten ist. Sie werden bash: /bin/mv: Argument list too long
aufgrund der Verwendung von sehen *
. Wenn dies der Fall ist, verwenden Sie es mv
in Kombination mit find
@amphetamachine oder mit einemfor loop
Schnelle Antwort:
cd /path/to/folderA
find folderB -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir folderB
Code-harte Antwort:
cd /path/to/folderA
folderB_temp="$(mktemp -d -t folderB.XXXXXX)"
mv folderB "$folderB_temp"
find "$folderB_temp/folderB" -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir --parents --ignore-fail-on-non-empty "$folderB_temp/folderB"