如何定义文件夹结构的“深度”?

如何定义文件夹结构的“深度”?

这不是一个与任何软件直接相关的问题,而是有关目录树深度的术语和定义的问题。

当我查看其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?目录呢/homefileC.txt深度是 2 还是 3?等等

我认为问题可以简化为“文件和文件夹位于/(例如/fileA.txt)深度 0 还是深度 1?”并且是否有易于理解的解释说明为什么这样定义?

答案1

从 的手册页中findmaxdepth定义如下。

-maxdepth 0  
 means only apply the tests and actions to the starting-points themselves.

因此,位于起始目录中的文件或文件夹的深度为 1。在您的特定情况下,深度为 1。fileA.txt
/home/user/fileC.txt深度为 3,因为这/home是第一级,/home/user是第二级,最后/home/user/fileC.txt是层次结构的第三级。

关于你的问题为什么这样定义?,对我来说,将所有文件和文件夹置于相对于搜索开始的 1 级,并将起点本身置于 0 级,这才是有意义的。
在 IT 中,您通常从 0(零)开始计数,例如,数组中的第一个元素引用 0(零)是很常见的。位置
参数与调用 shell 或脚本名称有关。shell$0

相关内容