Um dies manuell zu erreichen, können Sie auf einfache Weise den mv
Befehl mit einem starken Anführungszeichen verwenden, um sicherzustellen, dass die Shell den Doppelpunkt nicht als Sonderzeichen interpretiert:
mv 'Lang-32b-Branch:Line' 'Lang-32b-BranchLine' && cd 'Lang-32b-BranchLine'
Ein alternativer Ansatz besteht darin, eine Variable und eine der Funktionen der Bash-Parametererweiterung zu verwenden. Dies kann nützlicher sein, wenn Sie diese Änderung des Verzeichnisnamens in ein Skript automatisieren möchten:
dir=Lang-32b-Branch:Line
mv "$dir" "${dir//:/}"
Die Erweiterung von "${dir//:/}"
ersetzt jedes Auftreten des Doppelpunktzeichens durch nichts und ergibt das erwartete Ergebnis von Lang-32b-BranchLine. Die Verwendung "${dir/:/}"
würde dazu führen, dass nur das erste Auftreten des Doppelpunkts entfernt wird, obwohl dies für Ihr Beispiel immer noch funktioniert.
Als Einzeiler zum Verschieben und CD in das Verzeichnis:
dir=Lang-32b-Branch:Line ; mv "$dir" "${dir//:/}" && cd "${dir//:/}"
Oder wenn Sie den geänderten Verzeichnisnamen in einer Variablen namens new_dir erfassen möchten:
dir=Lang-32b-Branch:Line ; new_dir="${dir//:/}"; mv "$dir" "$new_dir" && cd "$new_dir"
Eine großartige Anleitung zur Erweiterung der Bash-Parameter finden Sie hier .