Directory

您如何定義文件夾結構的“深度”?

  • March 4, 2018

這不是與任何軟體直接相關的問題,而是關於目錄樹深度的術語和定義的問題。

當我查看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?” 是否有一個易於理解的解釋來解釋為什麼這樣定義?

從 的手冊頁中findmaxdepth定義如下。

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

因此,位於起始目錄中的文件或文件夾的深度為 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。

引用自:https://serverfault.com/questions/899863