web-dev-qa-db-ja.com

Linuxの二重ドット(..)および単一ドット(。)とは何ですか?

ls -aiコマンドは、.および..には、それぞれ現在のディレクトリと親ディレクトリと同じiノードがあります。

誰が正確に何を教えてもらえますか.および..は?

それらは実際のファイルですか、それともハードリンクですか?しかし、私が知っているように、ディレクトリへのハードリンクを作成することは許可されていません。

39
Cubarco

あなたが言ったように、ディレクトリはハードリンクを持つことができないので、それらは実際にはハードリンクではありませんが、ハードリンクとしてカウントする特別な名前-inodeマップです(リンクカウントを増やします)。詳細はこちら: ハードリンクとUnixファイルシステムノード(inodes)

9
e.dan

.は現在のディレクトリを表し、..は親ディレクトリを表します。

ドット定義 から:

これは、ファイルまたはディレクトリのタイプを示すために、ファイルまたはディレクトリのベース名(つまり、名前の主要部分)の最後に追加される短い文字列(つまり、文字のシーケンス)です。

Unixライクなオペレーティングシステムでは、すべてのディレクトリに、少なくとも1つのドットで表されるオブジェクトと2つの連続するドットで表されるオブジェクトが含まれます。 前者はディレクトリ自体を指し、後者はその親ディレクトリ(つまり、それを含むディレクトリ)を指します。これらのアイテムは、 -aオプション(非表示のアイテムを含むすべてのコンテンツを表示するように指示する)を指定したlsコマンドを使用して確認できるように、ディレクトリ。

45
Rahul Tripathi

ハードリンクではありません。このディレクトリと(..)このディレクトリの親(..)の省略形と考えることができます。

削除または名前変更を試みてください。または..それがハードリンクではない理由を理解します。

0
Nafis Ahmad

.は使用している現在のディレクトリを表し、..は親ディレクトリを表します。

例:ディレクトリ/etc/mysqlにいて、親ディレクトリ、つまり/etc/に移動してからcd..を使用するとします。

/etc/mysql> cd ..

また、現在のディレクトリの1つのファイルのパスを設定したい場合は、bashファイルで.を使用します。ファイル名は./ filename

0
Deva