是否真的find
不应该执行最简单的路径统一/简化操作,例如将多个连续斜杠合并在一起(这相当于原来的形式)?
例如 的输出find .///
是:
.///
.///somefile
[…]
(find
通过 GNU 和进行测试busybox
)
如果是这样那为什么呢?我缺少任何合理的用例吗?也许是因为有人正在 grepfind
内部脚本的输出?
find ./// -maxdepth 0 -printf '%h\n'
顺便说一句,同样有趣的是 GNU find for (的输出%h
应该是“文件名的前导目录(除了最后一个元素和前面的斜杠之外的所有目录)”): .//
(就少了一个/
)
答案1
如果您没有可以理解 NUL 字符的实用程序,则可以使用此历史行为来区分文件。 find 的输出永远不会包含连续的两个斜杠,除非它们作为初始路径的一部分提供。这意味着输出像
.//path/to/file
./name/more
告诉您有一个名为的目录,而不是如果您使用 find 调用file\n.
当前目录的子目录name
find .// -print