Home

[解決済み!] Bash: cd: 引数が多すぎます / Zsh: cd: 現在のディレクトリ内に文字列がありません

Updated on 2024年12月3日火曜日

Written by

JackYamamoto

Approved by

Jessica Shee

やまと English Français Deutsch Español Português

概要:cd: 引数が多すぎるエラーは、コマンドシェルでcdを実行してデバイス上の相対ディレクトリに移動しようとしたときに表示されます。このiBoysoftの記事では、簡単で効果的な解決方法を紹介します。

「bash: cd: 引数が多すぎる」というエラーコードや「zsh: cd: 引数が多すぎる」というエラーが、ディレクトリに入るためにcdを入力する際にコマンドシェルで発生することに戸惑っているでしょう。

ご心配なく。この記事では、なぜcd: 引数が多すぎるエラーが発生するのかと、5つの便利な修正方法を紹介します。

なぜZsh/Bash: cd: 引数が多すぎるエラーが発生するのですか?

通常、コマンドシェルは、cdコマンドの後にファイルパスを入力することで、直接ディレクトリを開くはずです。ディレクトリ名を引数として受け入れ、現在のシェル環境の作業ディレクトリを指定したディレクトリで置き換えます。

引数が指定されていない場合、cdコマンドはHOME環境変数で指定されたディレクトリが引数として指定された場合と同じ動作をします。しかし、Unixシェルでスペースや特殊文字を含むディレクトリ名を入力すると、それらを複数の引数とみなします。それが、bashコマンドシェルでcd: 引数が多すぎるエラーコードが表示される理由です。

 Note: zshコマンドシェルを実行している場合、「cd: string not in pwd」というエラーが、スペースを含むパスにcdしようとした場合に発生する場合があります。

一度に複数のディレクトリに移動できるかどうか疑問に思う人もいますが、答えは絶対に「いいえ」です。複数のディレクトリに入るためには、cdコマンドを1つずつ実行する必要があります。

この投稿が引数が多すぎる理由についての疑問を払拭し、他の人の助けになれば、下の共有ボタンをクリックしてください!

 

bash: cd: 引数が多すぎるというエラーとzsh: cd: 現在のディレクトリに指定した文字列が存在しないエラーの修正方法

上記で議論されたように、Unixシェルは特殊文字やスペースを含むディレクトリに複数の引数があることを認識し、ディレクトリの切り替えに失敗しました。このような場合、読み続けていただき、この記事ではcdの正しく機能するための4つの簡単な解決策を紹介します。

解決策1: ディレクトリ名を二重引用符で囲む

cdコマンドが特殊なディレクトリに正常に切り替わるための簡単な解決策の一つは、ディレクトリ名を二重引用符で囲むことです。

ステップ1: コンピューター上で端末を起動します。

ステップ2: cdを入力し、その後に二重引用符の記号を入力します。

ステップ3: 二重引用符でスペースや特殊文字が含まれるファイルパスを入力します。

cd "新しいフォルダ"

ステップ4: Enter/Returnキーを押してcdコマンドを実行し、入力したディレクトリに切り替わったことが確認できます。新しいディレクトリでさらなる操作を行うことができます。

また、ディレクトリへのパス全体を二重引用符で囲むか、スペースや特殊文字が含まれるパスのコンポーネントのみを二重引用符で囲むこともできます。

解決策2: スペースを回避するためにバックスラッシュを使用する

ディレクトリにスペースが含まれている場合、Unixシェルのcdコマンドラインはそれらを二つ以上の引数に分割します。したがって、バックスラッシュがスペースをエスケープし、スペースを引数の区切りではなくリテラルなスペース文字として扱うようにコマンドシェルに指示します。

ステップ1: マシン上でターミナルを実行します。

ステップ2: cdを入力し、切り替えるディレクトリを続けます。

ステップ3: ディレクトリ名のスペースにバックスラッシュを追加します。なお、スラッシュはパスのコンポーネントとしての区切り文字であり、バックスラッシュはスペースをエスケープするためのツールとして機能します。

cd desktop/my\ new\ folder

ステップ4: Return/Enterキーを押してcdを実行し、新しいディレクトリに移動します。

解決策3: タブキーを使用して自動補完する

Windows、Linux、および macOS のコマンドラインプログラムでは、タブキーを使用して指定したコマンドを自動的に補完することができます。たとえば、Unixコマンドプロンプトでは、これは異なるディレクトリに迅速に切り替えるための良い方法となります。

ステップ1: デバイス上でコマンドシェルを開きます。

ステップ2: 移動したいパスを入力し始めます。

ステップ3: キーボード上のTabキーを押すことで、自動補完機能を簡単に利用できます。

類似した名前を持つ複数のフォルダがある場合、cdしたいフォルダを特定するために名前の最初の数文字を入力する必要があります。オートコンプリートが機能しない場合、指定したパスが存在しないことを示しています。

解決策4:宛先ディレクトリでターミナルを開く

追加の処理のためにコマンドシェルでディレクトリを開くことを目指しているのであれば、cdに固執せず、宛先ディレクトリでターミナルを開くことも同じ効果があります。

Linuxを実行している場合は、以下の手順に従ってください:

ステップ1:エクスプローラでディレクトリを開きます。

ステップ2:右クリックしてターミナルで開くを選択し、コマンドシェルに戻って処理を続行できます。

macOSデバイスを実行している場合は、次のステップに従ってください:

ステップ1:ファイダーウィンドウを開き、フォルダに移動します。ファインダーウィンドウの一番下にパスバーが表示されない場合は、表示 -> パスバーの表示を選択します。

ステップ2:入力したいフォルダディレクトリを右クリックし、新規フォルダでターミナルを開くを選択します。

すると、ターミナルが指定したディレクトリに切り替わることが確認できます。

解決策5:フォルダをターミナルウィンドウにドラッグする

上記の解決策がすべてお好みでない場合、試してみる価値のある最終的な解決策は、フォルダディレクトリをターミナルウィンドウにドラッグするだけです。ターミナルを起動し、フォルダディレクトリをウィンドウにドラッグして左クリックすると、新しいディレクトリパスに移動します。

bash: cd: 引数が多すぎる/zsh: cd: 文字列はpwdに存在しませんの問題を解決した場合は、この記事を共有して他の人を助けましょう。

 

ボーナスのヒント:cdの最良の利用方法

コマンドシェル初心者またはターミナルへの情熱と好奇心を持つ方々にとって、この記事で説明されているさまざまなcdコマンドラインは役に立つはずです。以下で簡単に確認してみてください:

  • cd: cd それ単体または cd ~ は常にユーザーをホームディレクトリに配置します。
  • cd . : cd . は現在のディレクトリにユーザーを残します(つまり、現在のディレクトリは変更されません)。これは、ユーザーのシェルの内部コードが再作成されたディレクトリに対応できない場合に便利です。 cd . を実行すると、シェルは再作成されたディレクトリに配置されます。
  • cd ~username: cd ~ username はユーザーをusernameのホームディレクトリに配置します。
  • cd dir(スラッシュなし): cd dir はユーザーをサブディレクトリに配置します。たとえば、/usr にいる場合、cd bin を入力すると、/usr/bin に配置されますが、cd /bin を入力すると、/bin に配置されます。
  • cd ..: cd.. はユーザーを1つ上のディレクトリに移動します。したがって、/usr/bin/tmp にいる場合、cd .. は /usr/bin に移動しますが、cd ../.. は /usr に移動します(つまり、2つ上に移動します)。ユーザーはこの間接的な方法を使用してサブディレクトリにもアクセスできます。したがって、/usr/bin/tmp から、cd ../../local を使用して /usr/local に移動できます。
  • cd -: cd - は前のディレクトリにユーザーを切り替えます。たとえば、/usr/bin/tmp にいて /etc に移動した場合、cd - を入力すると、/usr/bin/tmp に戻ることができます。ユーザーはこれを使用して、pushd および popd を使用せずに2つのディレクトリ間を切り替えることができます。

まとめ

cd: 引数が多すぎるエラーは想像以上に恐ろしくありません。なぜなら、この記事ではそれを解消するための5つの簡単な解決策を提供しているからです。 cd を使用して相対ディレクトリに入るために、好きなだけ1つ以上の方法を試すことができます。さらに、この記事では cd コマンドラインをより良く使用する方法を教えてくれる素晴らしいコンテキストも見つけることができます。