「ls」に「.」が表示されるのはなぜですか?

「ls」に「.」が表示されるのはなぜですか?

質問を読んだ後「ls -a」と入力するときに「.」とはどういう意味ですか?そして「..」か。、同様のものがあります。

なぜ表示されるべきですか.?私は、cd .動作しないディレクトリがありますか?ユーザーが毎回この行を見るのはどのように役立ちますか?

ベストアンサー1

ls -a表示される理由はユーティリティ.には関係なく、..Unix(およびLinux)ファイルシステムに関連するすべてです。

すべてがファイルです。

ディレクトリは、実際にはファイルのリストを含むファイルです。特定のディレクトリの「内部」はユーザーの観点であるため、ファイルシステムの観点ではありませんが、2つの特殊ファイルです。

  • 最初のものと呼ばれ、.現在の作業ディレクトリへの参照です。人々は、.dllを介して現在のディレクトリからコマンドを実行するときにほぼ毎日それを使用します./scriptname
  • 2番目は..CWD親ディレクトリへの参照と呼ばれます。同様に...ディレクトリを親ディレクトリに変更したい人は毎日使用しますcd ..

システムコールはgetdents()システム側の主なツールでls、単にディレクトリ内のすべてのファイルを一覧表示します。 (覚えておいてください:すべてがファイルです。デバイス、ディレクトリ、ソケットなどがすべて表示されます。)

実用性の観点から、lsこのコマンドの作成者は、特定の情報や情報の種類をフィルタリングするためのさまざまなオプションとオプションの組み合わせを提供します。上記の@Gillesがコメントしたように、およびを除くすべてのls -A情報ポイントファイルを表示します。これらのオプションはすべて後処理オプションと見なすことができます。見つかった内容ではなく表示される内容に影響します。...lsls

.デフォルトでは、およびを明示的にリストする理由はありません..。なぜなら、私たち全員が彼らがどこにいるのか、何のためのものなのか、いつ使うべきかを知っているからです。

奇妙な権限の問題を解決するときにこれを見るためのいくつかのオプションがあれば、それは確かに役立ちます。

確認するマンページgetdents()1. 動作方法を詳しく説明し、 を使用してコンパイルできるサンプルプログラムのソースコードが含まれていますgcc -Wall。このソースコードには、ディレクトリ内のすべてのファイルがリストされています。


1. 少なくともUbuntuのマンページにはgetdents()サンプルコードがあるようです。

おすすめ記事