这不是与任何软件直接相关的问题,而是关于目录树深度的术语和定义的问题。
当我查看find . -maxdepth 0
其工作原理时,似乎深度 0 处唯一的东西是.
. 如果您这样做find . -maxdepth 1
,它会找到该目录中的所有目录和文件.
。
这对我来说似乎违反直觉。我认为位于给定路径根目录的任何目录或文件都将被认为位于树的最低深度,即深度 = 0。但这似乎不是find
命令的情况。
采用以下类型的目录结构:
/
/fileA.txt
/home
/home/fileB.txt
/home/user
/home/user/fileC.txt
/home/user/morefiles
/home/user/morefiles/fileD.txt
关于目录/树的深度,每个文件相对于根目录有多深/
?fileA.txt
深度是0 还是 1?/home
目录呢?是fileC.txt
在深度 2 还是 3?ETC
我想这个问题可以简化为“文件和文件夹位于/
(例如/fileA.txt
)深度 0 还是深度 1?” 是否有一个易于理解的解释来解释为什么这样定义?
从 的手册页中
find
,maxdepth
定义如下。因此,位于起始目录中的文件或文件夹的深度为 1。在您的特定情况下
fileA.txt
,深度为 1。您
/home/user/fileC.txt
的深度为 3,/home
第一级也是如此,/home/user
是第二级,最后/home/user/fileC.txt
是第三级等级制度。关于你的问题为什么它是这样定义的?,对我来说,将所有文件和文件夹相对于搜索开始的级别设置为 1 并且起点本身位于级别 0 才有意义。
在 IT 中,您通常从 0(零)开始计数,例如,很常见的是数组中的第一个元素由 0(零)引用。
在位置参数
shell
中$0
涉及调用 shell 或 scriptname。