すべてのファイルが表示されないのはなぜですか?

すべてのファイルが表示されないのはなぜですか?

ls - ディレクトリの内容の一覧表示

empty_dir# ls -al
total 0
drwxr-xr-x. 2 root root   6 Dec 31 09:49 .
dr-xr-x---. 6 root root 284 Dec 31 09:49 ..

find - ディレクトリ階層からファイルを検索する

empty_dir# find
.

答え1

find意図的に除外する必要があり...

で返された他のディレクトリと同様に、そのディレクトリに移動することは避けてくださいreaddir()

ディレクトリのみを表示し、.内容..はまったく表示せずに完全に除外します。

たとえば、を使用している場合、これは予想される動作です。ユーザーはこのコマンドが(親ディレクトリ)find -exec touch \{\} \;に影響を与えたくありません。..

満足のいく答えは、これを説明する正式な仕様を指します。

おそらくPOSIXはこれを文書化しようとしています。正式仕様とするほどよく理解できません。しかし、下の太い文章は「会わない」ことを.示している..

検索ユーティリティは、pathで指定された各ファイルのディレクトリ階層を繰り返しダウンさせ、見つかった各ファイルのOPERANDSセクションで説明されている基本色で構成されるブール式を評価する必要があります。各パスオペランドは、すべての末尾の文字を含むそのまま評価されます。階層で見つかった他のファイルへのすべてのパス名は、現在のパスオペランドが1で終わらず、パスオペランドに基づくファイル名です。相対部分にはドットまたはドットコンポーネントを含めないでください。末尾の文字を含めないでください。パス名コンポーネントの間には単一の文字のみを含める必要があります。

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html

関連情報