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/folderBvorhanden, schlägt dies fehl. Achten Sie daher darauf, dass Sie es nicht in Skripten verwenden.
folderBeine verrückte Anzahl von Dateien enthalten ist. Sie werden bash: /bin/mv: Argument list too longaufgrund der Verwendung von sehen *. Wenn dies der Fall ist, verwenden Sie es mvin 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"