Wie gehe ich zu einem Verzeichnis, dessen Name ein Leerzeichen enthält?


47

Ich habe ein Verzeichnis mit dem Namen "Reader 0.5" auf meinem Desktop unter Mac Os X. Wenn ich auf das Verzeichnis im Terminal zugreifen möchte, verwende ich den folgenden Code:

cd /Users/niho/Desktop/Reader 0.5

aber es wirft:

Datei oder Verzeichnis existiert nicht

Error.

Wie kann ich in dieses Verzeichnis CD?

Vielen Dank.

macos  bash  shell 

Antworten:


64

Entweder setzen Sie den Verzeichnisnamen in Anführungszeichen ( cd "/Users/niho/Desktop/Reader 0.5") oder Sie entziehen sich dem Verzeichnisnamen ( /Users/niho/Desktop/Reader\ 0.5).


5
Nur aus Gründen der Vollständigkeit, können Sie auch nur Teile des Arguments, wie zu zitieren entscheiden cd /Users/niho/Desktop/"Reader 0.5"oder sogarcd /Users/niho/Desktop/Reader" "0.5
user123444555621

3
Das letzte (Infixzitate) war neu für mich. Danke!
joschi

Nun: Wie platzieren Sie den Pfad mit den Infix-Leerzeichen in eine Umgebungsvariable, damit Sie dies tun können % cd $foo?
Bogatyr

8

Sie können dem Raum entkommen:

cd /Users/niho/Desktop/Reader\ 0.5

4

Wie bereits erwähnt, funktioniert es, wenn Sie den Pfad angeben oder die Leerzeichen mit einem Backslash versehen.

Außerdem unterstützt Bash, die Standardshell unter Mac OS X, die Befehlszeilenvervollständigung mit der Tabulatortaste. Also zB wenn du tippst:

cd /Users/niho/Desktop/Re

Drücken Sie dann die Tabulatortaste. Die Shell füllt den Rest des Ordnernamens aus (solange sich keine anderen Ordner auf Ihrem Desktop befinden, die mit "Re" beginnen) und sorgt dafür, dass die Argumente für cd in Anführungszeichen gesetzt werden, wenn Leerzeichen vorhanden sind im Verzeichnisnamen, den es ausfüllt.


4

Wenn Sie die Tabulatortaste in der Bash-Verknüpfung verwenden, wird die erste Stelle unterbrochen, an der mehrere Verzeichnisse identische Vornamen haben. In solchen Fällen müsste ein Benutzer Folgendes verwenden:

cd Adobe\ Creative\ Cloud/

oder was ich bevorzuge,

cd 'Adobe Creative Cloud'

Sowohl für bash als auch für zsh funktioniert das Zitieren nicht für mich: `` bash 2 => cd '~ / Library /' bash: cd: ~ / Library /: Keine solche Datei oder Verzeichnis 3 => cd ~ / Library / 4 => pwd / Users / pguruprasad / Library `` `
Prasanth

-1

Dies ist eine bequemere Methode, wenn Sie die cd-Befehle häufiger für bestimmte Verzeichnisse verwenden möchten. Es wird vermieden, den Verzeichnisnamen jedes Mal zu schreiben.

Fügen Sie in Ihrem .bashrc oder .profile Folgendes ein:

# activate cdable_vars
shopt -s cdable_vars

# define shortcut for your directory, here DIR
export DIR="/Users/<username>/path/to/your/dir"

Führen Sie Ihr Skript einmal aus: . .bashrc

Dann können Sie wie folgt in Ihr Verzeichnis wechseln:

cd DIR

Dies sollte auch dann funktionieren, wenn der Pfad Leerzeichen enthält.

In Shell-Skripten müssen Sie die Variable jedoch wie folgt zitieren:

cd "$DIR"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.