【保存版】bash/zshの「cd: too many arguments」エラーの原因と5つの簡単な解決策
コマンドシェルで目的のディレクトリへ移動しようと cd コマンドを入力した際、「bash: cd: too many arguments」や「zsh: cd: too many arguments」というエラーに遭遇して戸惑ったことはありませんか。
ご安心ください。この記事では、このエラーが発生する仕組みと、zsh/bash の「cd: too many arguments」エラーを解消する5つの簡単な方法をわかりやすく解説します。
Zsh/Bashで「cd: too many arguments」エラーが発生する理由
通常、コマンドシェルでは cd コマンドの後にファイルパスを入力すると、そのディレクトリへ直接移動できます。cd コマンドはディレクトリ名を引数として受け取り、現在のシェル環境の作業ディレクトリを指定されたディレクトリに置き換えます。
引数を指定しなかった場合は、HOME 環境変数に設定されたディレクトリが指定されたものとして動作します。ところが、スペースや特殊文字を含むディレクトリ名を Unix シェルに入力すると、シェルはそれを複数の引数として認識してしまいます。これが「cd: too many arguments」エラーが表示される原因です。
※補足:zsh を使用している場合、スペースを含むパスへ移動しようとすると「cd: string not in pwd:」というエラーが表示されることがあります。

「Unixシェルで一度に複数のディレクトリへ移動できるのか」という疑問を持つ方もいますが、答えはノーです。複数の階層をたどりたい場合は、cd コマンドを一つずつ実行する必要があります。
「bash: cd: too many arguments」「zsh: cd: string not in pwd」の解決方法
前述のとおり、Unixシェルはスペースや特殊文字を含むディレクトリ名を複数の引数として誤認識するため、ディレクトリへの移動に失敗します。以下で紹介する5つの解決策を順番に試してみてください。
解決策1:ディレクトリ名をダブルクォートで囲む
cd コマンドでスペースや特殊文字を含むディレクトリに正常に移動する最も手軽な方法は、ディレクトリ名をダブルクォート(" ")で囲むことです。
手順1:パソコンでターミナルを起動します。
手順2:「cd 」と入力し、続けてダブルクォート(" )を入力します。
手順3:クォート内に、スペースや特殊文字を含むファイルパスを入力します。
cd "my new folder"
手順4:Enter/Returnキーを押してコマンドを実行します。指定したディレクトリへ移動できれば成功です。あとは新しいディレクトリ内で自由に作業を行えます。

なお、ディレクトリまでのパス全体を囲んでも構いませんし、スペースや特殊文字を含む部分だけを囲むことでも問題ありません。
解決策2:バックスラッシュでスペースをエスケープする
ディレクトリ名にスペースが含まれていると、Unixシェルの cd コマンドはそれを2つ以上の引数に分割してしまいます。そこで役立つのがバックスラッシュ(\)によるエスケープです。スペースの直前にバックスラッシュを付ければ、シェルはそのスペースを引数の区切りではなく、文字どおりの空白文字として扱います。
手順1:マシンでターミナルを起動します。
手順2:「cd 」と入力し、続けて移動先のディレクトリを入力します。
手順3:ディレクトリ名の各スペースの直前にバックスラッシュを追加します。スラッシュ(/)はパス階層の区切り、バックスラッシュ(\)はスペースのエスケープ用なので、混同しないよう注意してください。
cd desktop/my\ new\ folder
手順4:Return/Enterキーを押せば、新しいディレクトリへ移動できます。

解決策3:Tabキーの自動補完機能を活用する
Windows、Linux、macOS のコマンドラインプログラムでは、Tabキーでコマンドやパスを自動補完できます。Unix のコマンドプロンプトでも、この機能を使えば素早く別のディレクトリへ移動できて非常に便利です。
手順1:デバイスでコマンドシェルを開きます。
手順2:移動したいパスを入力し始めます。
手順3:キーボードのTabキーを押すだけで、自動補完が働きます。
似た名前のフォルダが複数ある場合は、目的のフォルダを特定できるよう、名前の最初の数文字を入力してから Tab キーを押しましょう。自動補完が機能しない場合は、指定したパスが存在しないことを意味します。
解決策4:目的のディレクトリから直接ターミナルを開く
コマンドシェルでそのディレクトリを開いて作業したいのであれば、cd コマンドの入力にこだわる必要はありません。目的地のディレクトリから直接ターミナルを開いても、まったく同じ効果が得られます。
Linuxの場合:
手順1:ファイルマネージャーで対象のディレクトリを開きます。
手順2:右クリックして「Open in Terminal(ターミナルで開く)」を選択すれば、そのままコマンドシェルで作業を続けられます。
macOSの場合:
手順1:Finderウィンドウを開き、目的のフォルダへ移動します。ウィンドウ下部にパスバーが表示されていない場合は、メニューの「表示」→「パスバーを表示」を選択します。
手順2:移動したいフォルダを右クリックし、「New Terminal at Folder(フォルダ内の新規ターミナル)」を選択します。

これで、ターミナルが作業中のディレクトリに切り替わります。
解決策5:フォルダをターミナルウィンドウにドラッグ&ドロップする
上記の方法がどれも好みに合わない場合は、フォルダをターミナルウィンドウへドラッグ&ドロップする方法を試してみてください。ターミナルを起動したら、フォルダを左クリックしたままウィンドウへドラッグするだけで、新しいディレクトリパスが自動的に入力されます。
「bash: cd: too many arguments」「zsh: cd: string not in pwd」エラーを無事解決できたら、ぜひこの記事を共有して、他の人の助けにもしてください。
おまけ:cdコマンドをもっと使いこなすためのTips
コマンドシェルの初心者の方も、ターミナルに強い関心をお持ちの方も、覚えておくと便利な cd コマンドのバリエーションをここでまとめてご紹介します。
- cd:cd 単体、または cd ~ を実行すると、常にホームディレクトリへ移動します。
- cd .:現在いるディレクトリ(カレントディレクトリ)に留まります。シェルの内部処理でディレクトリの再作成を正しく扱えないケースなどに、cd . を実行すると再作成後のディレクトリに再接続できて便利です。
- cd ~username:指定したユーザー(username)のホームディレクトリへ移動します。
- cd dir(スラッシュなし):サブディレクトリへ移動します。例えば /usr にいる状態で cd bin と入力すると /usr/bin へ、cd /bin と入力すると /bin へ移動します。
- cd ..:一つ上の階層へ移動します。例えば /usr/bin/tmp にいる場合、cd .. で /usr/bin へ、cd ../.. で /usr へ(2階層上へ)移動します。この書き方を応用すればサブディレクトリへのアクセスも可能です。例えば /usr/bin/tmp から cd ../../local と入力すると /usr/local へ移動できます。
- cd -:直前にいたディレクトリへ戻ります。例えば /usr/bin/tmp から /etc へ移動した後、cd - と入力すれば /usr/bin/tmp に戻れます。pushd/popd を使わずに2つのディレクトリ間を行き来したいときに重宝します。
まとめ
「cd: too many arguments」エラーは想像ほど恐ろしいものではありません。この記事で紹介した5つの解決策を試せば、cd コマンドで目的のディレクトリへスムーズに移動できるようになります。さらに、cd コマンドラインをより上手に活用するためのヒントもこの記事で習得できます。

Macで「Zsh permission denied」エラーが発生する理由や、権限変更を含むMacのアクセス許可エラーの修正方法については、関連記事をご覧ください。
-
MacでExcelの動作が遅い問題を解決!作業効率を向上させる改善方法
近年、Macユーザーの間でMicrosoft Officeの動作が遅いという声が増えています。新機能を含むアップデートが独自拡張機能との互換性問題を引き起こしたり、Macにインストールされたアプリが多すぎてアプリケーションメモリが不足し、Excelの動作に支障が出るケースもあります。 Excelはビジネスツールキットに組み込まれた革新的かつプロフェッショナルなソフトウェアです。しかし、MacでExcelが遅い問題が発生すると、ダウンタイムが発生し、生産性も低下します。突然、Excelの動作が極端に遅くなり、業務に支障をきたすこともあるでしょう。 本記事では、Macの専門家たちが推奨する、Exc
-
Apple Silicon搭載MacでWindows OSとアプリを動かす方法【完全ガイド】
目次:1. Apple Silicon Macとの互換性問題2. M1 MacでWindowsは使える?(OS&アプリ)3. M1/M1 Pro/M1 Maxチップ搭載MacでWindowsを動かす方法4. まとめWindows PCとMacは、コンピュータ市場における互いに最も強力なライバルです。それぞれに長所があるため、どちらが優れているとは一概には言えず、消費者にとって選択は難しいところです。予算に余裕があれば、両方購入するのも一つの手でしょう。幸いなことに、「Mac上でWindowsを実行したい」という強い需要は、Intelチップ搭載のMacでは実現されてきました。macOSのユーティ