名前にスペースを含むディレクトリにcdする方法は?


47

Mac OS Xのデスクトップに「Reader 0.5」というディレクトリがあります。ターミナルのディレクトリにアクセスするときは、次のコードを使用しています。

cd /Users/niho/Desktop/Reader 0.5

しかし、それは投げます:

そのようなファイル、又はディレクトリはありません

エラー。

どうすればそのディレクトリにcdできますか?

ありがとう。

macos  bash  shell 

回答:


64

ディレクトリ名を引用符で囲むか(cd "/Users/niho/Desktop/Reader 0.5")、ディレクトリ名をエスケープします(/Users/niho/Desktop/Reader\ 0.5)。


5
ただ、完全を期すために、あなたも同じように、引数の部分だけを引用することを決定することができcd /Users/niho/Desktop/"Reader 0.5"、あるいはcd /Users/niho/Desktop/Reader" "0.5
user123444555621

3
最後の1つ(中置引用符)は私にとって新しいものでした。ありがとうございました!
-joschi

さて:挿入変数スペースを含むパスをenv varに配置してどうすればいい% cd $fooですか?
ボガティル


4

他の人が言及したように、パスを引用するか、スペースをバックスラッシュでエスケープすることは機能します。

さらに、Mac OS Xのデフォルトのシェルであるbashは、Tabキーを使用したコマンドライン補完をサポートしています。たとえば、次のように入力した場合:

cd /Users/niho/Desktop/Re

次にTabキーを押すと、シェルはフォルダ名の残りの部分を埋めます(デスクトップに「Re」で始まる他のフォルダがない限り)、スペースがある場合はcdの引数を引用符で囲みますディレクトリ名に記入します。


4

Fyi、bashショートカットでTabを使用すると、複数のディレクトリに同じ名が付けられている場合、最初のスペースでブレークします。そのような場合、ユーザーは以下を使用する必要があります。

cd Adobe\ Creative\ Cloud/

または私が好むもの、

cd 'Adobe Creative Cloud'

bashとzshの両方で、引用符が機能しません: `` `bash 2 => cd '〜/ Library /' bash:cd:〜/ Library /:No such file or directory 3 => cd〜/ Library / 4 => PWD /ユーザ/ pguruprasad /ライブラリ`` `
Prasanth

-1

特定のディレクトリに対してcdコマンドをより頻繁に使用したい場合は、より快適な方法があります。毎回ディレクトリ名を書くことを避けます。

.bashrcまたは.profileに次を挿入します。

# activate cdable_vars
shopt -s cdable_vars

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

スクリプトを1回実行します。 . .bashrc

次に、次のようにディレクトリに移動します。

cd DIR

これは、パスにスペースが含まれている場合でも機能するはずです。

ただし、シェルスクリプトでは、次のように変数を引用する必要があります。

cd "$DIR"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.