我正在使用如下命令查询服务器:
find ./ -type f -name 'filename"
我有很多文件开头
.//library
或者
.//user
这些事情意味着什么?
答案1
这没有多大意义:你给出的模式find
是./
,并且很容易find
将其结果粘贴到该路径上。双斜杠将被忽略(视为单斜杠),除非领导双斜杠对于某些系统可能有一定的意义。更重要的是,可移植程序采用这种行为。
但是,您只会在具有旧版本find
(例如 OSX)的 BSD 派生系统中看到这种特殊行为。 NetBSD 尝试在其源代码中修复此问题2005年; OSX 的用户空间是较老的。
检查“最近的”FreeBSD、NetBSD 和 OpenBSD,没有一个产生这种行为。 Linux 和 Unix(AIX、HPUX、Solaris)同样不支持。
进一步阅读:
- Mac 终端“查找”命令:结果输出中的双斜杠是什么意思?
find——查找文件(POSIX)
这
find
实用程序应从路径指定的每个文件递归地降低目录层次结构,评估由遇到的每个文件的操作数部分中描述的原色组成的布尔表达式。每个路径操作数都应被评估不变的正如所提供的那样,包括所有尾随的<slash>
人物;层次结构中遇到的其他文件的所有路径名应由当前路径操作数的串联组成<slash>
如果当前路径操作数不以 1 结尾,则文件名相对于路径操作数。相关部分不应包含点或点-点组件,也不应包含尾随部分<slash>
字符,并且路径名组件之间仅包含单个字符。
答案2
表示.//
当前目录,因此.//user
在输出中表示user
当前工作目录中的文件。
double//
应该解析为 single /
,这对于我使用过的所有系统都是如此。虽然,POSIX 仅定义了此行为///
(或更多),当然,/
.
出现双精度是因为您使用了as//
的搜索路径,而不是典型的.两者都表示当前工作目录,并且都是正确的。这是在相对路径的情况下以这种方式附加路径的行为。请注意,这种特定行为仅在系统的子集中普遍存在,例如find
./
.
find
find
这个答案提到过,你想必就是其中之一。
答案3
.//
是相同的./
第一个斜杠之后的连续斜杠没有语义意义。