web-dev-qa-db-ja.com

Linuxでの./の意味(ドットスラッシュ)は?

たとえば、私は次のことができます

touch a

または

touch ./a

その後、lsを実行すると両方を表示できるので、./ ために?

13
K Split X

ドットスラッシュ_./_は、現在のディレクトリ内の何かへの相対パスです。

ドットは現在のディレクトリであり、スラッシュはパス区切り文字です。

コマンド_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'
_

だろう。

16
Kusalananda

./表記は、現在のディレクトリでスクリプトまたは他の実行可能ファイルを実行しようとするときに役立ちます。 Windowsコマンドプロンプトとは異なり、Unix(およびLinuxのようなUnixのようなシステム)シェルは、PATH環境変数を確認する前に実行可能ファイルの現在のディレクトリを確認せず、Unixシステムは./を含めない傾向がありますセキュリティ上の理由からPATH指定する必要がある

./executable

ただではなく

executable

ユーザーは、「はい、私はdoこの実行可能ファイルを現在のディレクトリで実行したい」と言っています。

8
Ken Keenan

これは相対パスと呼ばれます。

.は、現在の作業ディレクトリを表します。したがって、現在/home/jesseにいる場合、./home/jesseへのリンクにすぎないため、./を指すと、実際に/home/jesse/を指すようになります。

4
jesse_b