Wie cd in ein Verzeichnis, das ein Leerzeichen in seinem Namen enthält?

Ich habe ein Verzeichnis namens "Reader 0.5" auf meinem Desktop unter Mac Os X. Wenn ich auf das Verzeichnis im Terminal zugreife, verwende ich den folgenden Code:

cd /Users/niho/Desktop/Reader 0.5

Aber es wirft:

Keine solche Datei oder Verzeichnis

Error.

Wie kann ich in dieses Verzeichnis cd?

Dank.

Author: joschi, 2011-03-13

5 answers

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

 68
Author: joschi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-03-13 11:09:12

Sie können dem Leerzeichen entkommen:

cd /Users/niho/Desktop/Reader\ 0.5
 8
Author: Felix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-03-13 11:08:56

Wie andere bereits erwähnt haben, funktioniert das Zitieren des Pfads oder Backslash-Escape der Leerzeichen.

Zusätzlich unterstützt bash, die Standard-Shell unter Mac OS X, die Befehlszeilenvervollständigung mit der Tabulatortaste. Also zB wenn Sie eingeben:

cd /Users/niho/Desktop/Re

Drücken Sie dann die Tabulatortaste, die Shell füllt den Rest des Ordnernamens aus (solange sich auf Ihrem Desktop keine anderen Ordner befinden, die mit "Re" beginnen), und zitiert die Argumente auf cd, wenn der Verzeichnisname Leerzeichen enthält in.

 5
Author: Simon Whitaker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-03-13 18:06:14

Zu Ihrer Information, die Verwendung der Registerkarte in der Bash-Verknüpfung würde beim ersten Leerzeichen, auf das sie stößt, unterbrochen, wenn 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'
 5
Author: Ricardo Fernandez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-06-11 11:33:44

Hier ist eine bequemere Möglichkeit, wenn Sie die CD-Befehle häufiger in bestimmten Verzeichnissen verwenden möchten. Es vermeidet jedes Mal, den Verzeichnisnamen zu schreiben.

In Ihr .bashrc oder .Profil einfügen:

# 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 cd:

cd DIR

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

In der shell-scripting, Sie müssen jedoch die quote der Variablen wie diesem:

cd "$DIR"
 -1
Author: Agile Bean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-06-19 12:03:06