なぜ」。 「現在のディレクトリを表すには選択し、親ディレクトリを表すには「..」を選択しますか?

なぜ」。 「現在のディレクトリを表すには選択し、親ディレクトリを表すには「..」を選択しますか?

この質問を読んだ後ホームディレクトリを表すために「〜」を選択するのはなぜですか?、私の心の中の次の明らかな質問は「」。 '..'が現在のディレクトリと親ディレクトリを表すために使用される理由です。

今は直感的なようですが、特別な理由はありますか?

答え1

チルダの質問ほど興味深い答えを見つけることができるかどうか疑問です!

私はそこにいませんが、..の省略記号(...)と同じですcd ../../../there。さらに、特にチルダの大文字と小文字を持つ古いターミナルキーボードには、この目的を果たす多くの文字がありません。交代勤務も変更する必要はありません.。これは完璧です。

ファイルを隠すためにドットプレフィックスを使用する別の理由があるかもしれません。基本的に、次のlsツールは、重複とは他のファイルと一緒に考慮する必要がないことを意味します。それ以外の場合は間違いなく便利です。...

私は可能戻る...からウィキペディア:

ファイル名の前に「.」を付けることは、UNIXの初期にはソフトウェアのバグの結果を隠すためのものでした。特別な「。」そして、「..」ディレクトリエントリがファイルシステムに追加されると、lsコマンドはそのエントリを表示しないことにしました。ただし、lsプログラムは、「.」という名前のファイルのみを除外するのではなく、「.」で始まる名前のファイルを除外するように誤って書かれています。または'..'。

これはプログラミングに非常に役立ちます。システムに 。および..応答readdir()タイプコマンド(およびシェルglob)が含まれているため、これを無視してファイルを隠すことを同じ方法で実行できます。

様々な見方この使用の価値に関する情報は、ウィキペディアが引用した参考文献にあります。もちろん、全体の内容が虚構かもしれませんが、...たとえば、デニス・リッチーが最初の文字だけを確認するのは大丈夫だと思ったことは少し信じ難いです。

私は作者の意見に同意しません。共通のプレフィックスを提供するよりも隠された設定ファイルを独自のディレクトリに置くことをお勧めします。プレフィックスはより柔軟で、.gitignore同じツリー内のディレクティブを使用できます.htaccess。このタイプのファイルは、アルファベット順に並べ替えても一緒に表示されます。だから結局は意図的​​だったかもしれません。

答え2

ほとんどの回答は次のように関連しています。スタックオーバーフローの@Panos:

簡単に言えば、ユーザーが手動で作成しdddディレクトリdとディレクトリのディレクトリ)からd進化しました。 ~になるdd指す、およびは最初にユーティリティによって生成され、次に(ディレクトリを接続した後はユーザーにのみsetuidが許可されなくなった)システムコールによって生成されます...mkdirmkdir

から抜粋ケン・トンプソンとのインタビュー(1989-09-06):

ゲイの男性: しかし、ユーザーにとっては、ディレクトリ階層とほぼ同じように見えます。

トンプソン:いいえ、最初はDGです。実際、ループレスではありません。 UNIXファイルシステムについて知っている場合は、システム内のすべてのファイルの定義であるI-listがあることをご存知でしょう。これらのファイルのいくつかは、名前とI番号のみを含むディレクトリです。それを木に限定することは何もありません。実際にはそうではありません。まったく階層がありません。

ゲイの男性:わかりました。

トンプソン:私たちはそれを1つのツリーに限定しません。様々なトポロジーを試しています。結局のところ、私たちがしたことは具体的で、実際にそのシステムの習慣であるトポロジを強制することでした。ディレクトリを作成するたびに、慣例に従ってディレクトリと呼ばれる別のディレクトリに入れます。目次 - 目次、これはddです。名前はddで、すべてのユーザーディレクトリと実際には他のほとんどのディレクトリです。ユーザーは自分のディレクトリシステムを維持し、ddへのポインタを持ち、ddは次のように短縮されます。ピアツーピア、ddはディレクトリ - ディレクトリを意味します。ここからスパゲッティボウルを維持するために、システムの他のすべてのディレクトリにアクセスできます。したがって、私はDGの実装で厳密に合意されたさまざまな種類の凝灰岩について言及しています。ファイルシステムチェッカー、スパゲッティボウルディレクトリのロック、リンクされていないアイテムの検索などの作業を開始すると、何かを壊して失われたことを知っているため、再び取り戻すことはできません。これらの問題はほとんど克服できなくなったため、次の実装ではこれより強力なタイプを強制しました。

関連情報