特定のパスの前の./の意味は何ですか?


25

私はこれを実行するように言われました:

./yiic message ./app/messages/config.php

しかし、私はその./意味を理解していません、誰でも喜ばせてください。

注:信じてください、Googleで検索することはできません。私はもう試した:

./意味./ ubuntu

それは何もないと同じでした。:(


3
このような場合、「ドットスラッシュ」を探すのが最善です。これにより、非常に有用な結果が得られました。linfo.org
heltonbiker

回答:


29

./または.、現在のディレクトリのunixの省略形です。

現在のディレクトリがPATHにない場合に指定する必要があります。PATHは、プログラムの実行時に検索されるフォルダーのリストです。(書き込むことで決定できecho $PATHます。)実行可能ファイルがPATHにない場合は、実行するためにその中にあるフォルダーを指定する必要があります。現在のディレクトリ、./短縮形として使用できます。

同様に、../または単に..現在のディレクトリの上のディレクトリの略記です。


17
$ PATHにが含まれていない理由を誰かが答えに含める必要があります.。これは、現在のディレクトリを自動的に使用するとセキュリティホールになるためです。名前も、他の誰かがプログラムを作る想像しlsて、あなたがcd彼のディレクトリには、入力ls
斬Lynxは

1
@Zan私はいつもこれを疑問に思っていました。
古典的な

@ZanLynxのすばらしいコメント/追加。コメントが失われる可能性があるため、回答に編集する必要があります。
NSGaga

15

コマンドラインのすべてのディレクトリには、.およびという2つの「特別なディレクトリ」があり..ます。これらは、それぞれ現在のディレクトリと現在のディレクトリを含むディレクトリの略記です。

したがって、たとえば、cd ./more/directory/names単に「現在のディレクトリから開始して、パスで続行する」という意味です。同様に、コマンドcd ..は、「1つのディレクトリを変更します。

現在のディレクトリの名前が必要な場合は、pwdコマンドを使用できます。また、の-aフラグを使用するとls、これら2つの特別なディレクトリを確認できます。つまり、ls -a始まるリストが出力さ...


優れた追加root45 +1 :)
Rinzwind

4

他のものはすでに何...意味を説明しています(それぞれ現在のディレクトリと親ディレクトリ)。これはすべてのパス名に適用されます。

ターミナルを開くと、通常はホームディレクトリで開始します:(~これはに展開されます/home/username)。現在の作業ディレクトリが/home/username次の場合、以下のパスはすべて同等です。

  • /home/username
  • .
  • ../username
  • ../../home/username
  • ../../../home/username(の親ディレクトリ/はまだです/
  • ./././././. (...の現在のディレクトリ内の現在のディレクトリ)
  • ./ (ディレクトリには末尾のスラッシュを使用できます)
  • /home////username/// (複数のスラッシュも同様です)

ではない混乱./program. program./program実行ビットを設定して、現在のディレクトリでファイルを実行します。. ./programはbashのものであり、代わりに、現在のディレクトリのファイルsource ./programからbashコマンドを読み取りprogram、現在のシェルで実行するように記述できます。

あなたはあなただけ実行することができますなぜ不思議場合はgedit代わりの/usr/bin/geditとないprogramのではなく、./programまたは/home/username/program、関連する質問を参照してください。


3

から開始することを意味しcurrent directory pathます。

次のpathようなものがあると仮定しましょう:

/usr/ /usr/bin/ /usr/local/bin

そして内部/usr/bin/にはと呼ばれる実行可能ファイルがありますyiic

あなたが発行yiicする場合、それは1つを開始し/usr/bin/ます。

発行./yiicすることにより、この実行可能ファイルの現在のディレクトリ内を検索するようにシステムに指示します。


わかりました...しかし、私はまだ得られません。内部にyiic /home/mysuser/があり、を使用してそこに移動するとしcd /home/myuserます。中に入ると、yiicを実行するだけで動作するはずだと考えました。そのディレクトリで呼び出しているためです。しかし、彼はコマンドではなくファイルを言います。私が同じことをして、。/を使用すると、正しく実行されます...もう少し明確にしてください。
MEM

@frabjousもこのコメントに回答しました。
MEM

いや!(./を使用して)現在のディレクトリを使用するように指示しない限り、常にPATHディレクティブを検索します。user45の答えを見てください:.フォルダー内にある特別なファイルです。ディレクトリ内で行うときに見ることができますls -la;)
Rinzwind
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.