Gibt es einen Bash-Platzhalter zum Ändern von Verzeichnissen?

Gibt es einen Bash-Platzhalter zum Ändern von Verzeichnissen?

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 /volumesist 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 nocaseglobzu 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 onzu 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, bashwird das erste verwendet und der Rest ignoriert. Was genau funktioniert bei Ihnen nicht?

verwandte Informationen