Как вы определяете «глубину» структуры папок?

Это не вопрос, напрямую связанный с какой-либо частью программного обеспечения, а скорее вопрос о терминологии и определении глубины дерева каталогов.

Когда я смотрю на то, как находить . -maxdepth 0 работает кажется, что на глубине 0 только . . А если и сделаешь найдешь. -maxdepth 1 находит все каталоги и файлы, которые находятся в каталоге . .

Мне это кажется нелогичным. Я бы подумал, что любой каталог или файл, находящийся в корне данного пути, будет считаться находящимся на самой низкой глубине дерева, или depth = 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 ? Это файл C. txt на глубине 2 или 3? и т. д.

Я полагаю, что вопрос можно упростить до "Находятся ли файлы и папки в / (например, /fileA.txt ) на глубине 0 или глубине 1?" И есть ли легкое для понимания объяснение того, почему это определено таким образом?

0
задан 4 March 2018 в 07:50
1 ответ

Из меню find, maxdepth определяется следующим образом.

-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.

.
1
ответ дан 4 December 2019 в 16:01

Теги

Похожие вопросы