Wenn ich die Bash-Befehlszeile verwende, kann ich beispielsweise mit ... in ein Verzeichnis wechseln.
cd /volumes
Ich möchte jedoch Folgendes eingeben ...
cd /vol*
aber das funktioniert nicht. Gibt es eine Möglichkeit, mit Platzhaltern durch Verzeichnisse zu navigieren?
Antwort1
Mac OS verwendet standardmäßig ein Dateisystem, bei dem Groß- und Kleinschreibung nicht beachtet werden. cd /volumes
ist gleichwertig mit cd /Volumes
, aber Bash kann das nicht globgen vol*
: Versuchen Sie escd /Vol*
Antwort2
Wie @William Pursell sagte, liegt das daran, dass der Ordner /Volumes und nicht /volumes heißt. Das OS X-Dateisystem unterscheidet nicht zwischen Groß- und Kleinschreibung und ignoriert daher den Unterschied. Bash unterscheidet jedoch zwischen Groß- und Kleinschreibung und stolpert über den Unterschied.
Sie können das Standardverhalten von Bash jedoch ändern: Um Dateimustererweiterungen ohne Berücksichtigung der Groß- und Kleinschreibung vorzunehmen, fügen Sie den Befehl shopt -s nocaseglob
zu Ihren Dateien ~/.bashrc und ~/.bash_profile hinzu (er wird in beiden benötigt, daher ist die Option sowohl in Login-Shells als auch in Subshells gesetzt). Wenn Sie möchten, dass die Dateinamenvervollständigung auch bei falscher Groß- und Kleinschreibung funktioniert, fügen Sie ihn entweder set completion-ignore-case on
zu Ihrer Datei ~/.inputrc oder bind "set completion-ignore-case on"
zu Ihren Dateien ~/.bashrc und ~/.bash_profile hinzu.
Antwort3
Tippen:
cd /vol*
WerkeAlles gut. Auch wenn /vol*
es auf mehrere Verzeichnisse erweitert wird, bash
wird das erste verwendet und der Rest ignoriert. Was genau funktioniert bei Ihnen nicht?