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 正在尝试记录这一点。我不太了解,无法将其作为正式规范。但下面的粗体句子表明它并没有“遇到”.
和..
。
find 实用程序应从路径指定的每个文件递归地沿目录层次结构下降,对遇到的每个文件评估由 OPERANDS 部分中描述的原色组成的布尔表达式。每个路径操作数应在提供时按原样进行评估,包括所有尾随字符;层次结构中遇到的其他文件的所有路径名应由当前路径操作数、a(如果当前路径操作数不以 1 结尾)和相对于路径操作数的文件名的串联组成。相对部分不应包含点或点点组件,不应包含尾随字符,并且路径名组件之间仅包含单个字符。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html