Идентификация самой глубокой папки в дереве

Отметьте - не делайте downvote меня из-за изображения. Не код в изображении, его просто схема, которая может легко визуализироваться там.

Как Вы видите в этом изображении, самый глубокий каталог является "n2" в "a"-> https://imgur.com/a/jzzbm.

С script/command/cmdlet/program я хочу программно узнать самую глубокую папку в данной папке и смочь перейти в него (или распечатать полный путь той самой глубокой папки!).

Какая-либо справка о том, как это могло быть достигнуто, ценится.

-5
задан 10 April 2018 в 00:19

1 ответ

Используя find, sort и sed:

find . -type d -printf '%d %p\0' | sort -zrn | sed -z 's/[0-9]* //; q'
  • С find:
    • поиск каталогов (-type d)
    • %d и %p глубина и имя (включая путь)
  • sort сортирует строки численно, наоборот
  • с sed, разделите ведущую глубину и выйдите после первой строки, покинув просто путь каталога с самой большой глубиной

Так:

cd "$(find . -type d -printf '%d %p\0' | sort -zrn | sed -z 's/[0-9]* //; q')"
1
ответ дан 30 October 2019 в 03:04

Другие вопросы по тегам:

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