GNU/Linux >> Linux の 問題 >  >> Linux

cd 使用時の / の使用

これは標準的な Unix の動作です。

/ パスの先頭にある は、ディスクのルート (またはファイルシステム ツリーの開始/最上位レベル) を表します。 Documents として ルートから外れていない、/Documents 見つかりません。

/Users はルート ディレクトリから離れているため、この問題は発生しません。

cd /Users/lukas/Documents を使用できます そのパスに変更します。

または、相対アドレス指定を使用することもできます。 Unix ベースのファイルシステムには、2 つの特別なディレクトリがあります:

  • . これは「このディレクトリ」を意味します
  • .. これは親ディレクトリを意味します。

/Users/lukas にいる場合 、 cd ./Documents 正しい場所に連れて行ってくれます。

あなたが /Users/Lukas/Documents にいたとしましょう /Users/Janes/Documents に行きたかった 、コマンド cd ../../Janes/Documents を発行できます - .. を使用 レベルを戻すため、新しい相対パスに入る前に 2 回実行します。


/Users/lukas 「絶対」パスです。先頭の / ファイルシステムのルート ディレクトリを表します。

lukas 「相対」パスです。ルートに固定されていないため、「current でこれを探す」ことを意味します ディレクトリ」。現在のディレクトリが /Users でない限り (または lukas を持つ他のディレクトリ )、これは失敗します。

それでは、あなたが /Users/lukas にいると仮定して、あなたの例を調べてみましょう :

$ cd Documents/
/Users/lukas/Documents

指定された相対パス => /Users/lukas 内のディレクトリ「Documents」に変更 .

$ cd /Documents
-bash: cd: /Documents: No such file or directory

指定された絶対パス => ディレクトリ /Documents に変更 .

$ pwd
/

これは、作業ディレクトリをルート ディレクトリ / に変更したことを示しています。 (ただし cd これを行うコマンドは示されていません)。

$ cd Users
/Users

指定された相対パス => / 内のディレクトリ「Users」に変更 .

$ cd /Users
/Users

指定された絶対パス => ディレクトリ /Users に変更 .

毎回重要なのは、先頭の / です .これでパスは絶対です。それがなければ、パスは相対です。すべての絶対パスが / で始まるため、このルールは明確です。 (ルートディレクトリは常に / と呼ばれるため ).

以下は、そのアルゴリズムを大まかに記述した疑似コードです:

MakePathAbsolute(path):
   if <path> starts with '/'
      return <path>
   else
      return <current directory>/<path>

cd に渡す引数 このアルゴリズムを通過します。最終的に変更するディレクトリは、アルゴリズムが返すパスです。

さらに読む:

  • Unix ファイルとディレクトリのチュートリアル
    ジョセフ・L・ザカリー
    「科学的プログラミング入門」

Linux
  1. Cを使用してディレクトリ内のファイル数を数える

  2. 動的にロードされたときのライブラリパス?

  3. Python で Linux と Windows の両方で / (ディレクトリ区切り記号) を使用するには?

  1. ビルド時にbazelに外部ストレージを使用させるにはどうすればよいですか?

  2. ビンにプログラムを作成する

  3. sudoの使用時にlinuxコマンドが見つかりましたが見つかりませんでした

  1. ディレクトリで末尾のスラッシュを使用する必要があるのはいつですか?

  2. Nohupをいつ使用するのですか?

  3. BashスクリプトでCdを使用できないのはなぜですか?