たとえば、私は次のことができます
touch a
または
touch ./a
その後、ls
を実行すると両方を表示できるので、./
ために?
ドットスラッシュ_./
_は、現在のディレクトリ内の何かへの相対パスです。
ドットは現在のディレクトリであり、スラッシュはパス区切り文字です。
コマンド_touch ./a
_を指定すると、「引数_./a
_を指定してtouch
ユーティリティを実行します」と言うと、touch
がファイルを作成(またはタイムスタンプを更新)します現在のディレクトリのa
。
_touch a
_と_touch ./a
_の違いはありません。どちらのコマンドも現在のディレクトリのa
と呼ばれるものに作用するためです。
同様に、_touch ../a
_は「階層の1つ上のディレクトリ」を参照するため、_..
_は現在のディレクトリの上のディレクトリにあるa
に作用します。
_.
_および_..
_は2つ特別なディレクトリ名であり、UNIXシステムのすべてのディレクトリに存在します。
ファイル名の最初の文字にダッシュを含むファイルを作成または削除するとき、または単にファイルを操作するときなど、ファイル名の前に_./
_を付けることができると便利な場合があります。
例えば、
_touch -a file
_
_-a file
_というファイルは作成されず、どちらも作成されません
_touch '-a file'
_
だが、
_touch ./'-a file'
_
だろう。
./
表記は、現在のディレクトリでスクリプトまたは他の実行可能ファイルを実行しようとするときに役立ちます。 Windowsコマンドプロンプトとは異なり、Unix(およびLinuxのようなUnixのようなシステム)シェルは、PATH
環境変数を確認する前に実行可能ファイルの現在のディレクトリを確認せず、Unixシステムは./
を含めない傾向がありますセキュリティ上の理由からPATH
指定する必要がある
./executable
ただではなく
executable
ユーザーは、「はい、私はdoこの実行可能ファイルを現在のディレクトリで実行したい」と言っています。
これは相対パスと呼ばれます。
.
は、現在の作業ディレクトリを表します。したがって、現在/home/jesse
にいる場合、.
は/home/jesse
へのリンクにすぎないため、./
を指すと、実際に/home/jesse/
を指すようになります。