все. Я ищу быстрый и грязный способ сгенерировать диаграммы некоторых каталогов, которые имеют почти, но не совсем одинаковую иерархию, чтобы я мог показать их на собрании, и мы могли решить, какой вариант нам больше нравится. Меня не интересуют «листовые» узлы, только каталоги.
Уловка: я не хочу связываться с X. Это серверная система, с которой я работаю исключительно через SSH. Итак, я ищу что-то, что будет делать макет ASCII, может быть, с простыми чертами и дефисами для строк или что-то в этом роде.
Кто-нибудь знает о такой утилите? Я уверен, что мог бы написать что-нибудь сам, но это такой непростой проект с обработкой интервалов, компоновкой и т. Д .; Я действительно хотел бы узнать, что кто-то сделал это за меня. Увы, Google, похоже, не знает об этом ... а если и знает, то это скрыто под кучей превосходных визуальных объяснений стандартной общей иерархии файлов Unix. Спасибо!
я хотел бы использовать tree
.
$ tree -d /usr|head -n 12 /usr |-- X11R6 | `-- lib | `-- X11 | `-- wily |-- bin | `-- X11 -> . |-- games |-- i586-mingw32msvc | |-- bin | |-- include | | |-- GL
Если у вас нет дерева, вы можете использовать эту команду linux / unix:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
Вы также можете сделать так, чтобы сценарий оболочки видел подробности здесь.
Объяснение приведенной выше команды:
ls -R
перечислить все каталоги, подкаталоги,
Объяснение ls -R
рекурсивно перечислить все файлы и каталоги
пример:
./sys/devices/platform/ag71xx.0/net/eth0:
addr_assign_type device iflink speed
./sys/devices/platform/ag71xx.0/net/eth0/queues:
tx-0
grep ":$"
фильтрует только файлы с :
до конца строки, при этом остается, что-то вроде.
./sys/devices/platform/ag71xx.0/net/eth0:
./sys/devices/platform/ag71xx.0/net/eth0/queues:
Затем передается серия из нескольких команд с использованием -e
переключиться на sed
's/:$//'
полосы все следы :
's/[^-][^\/]*\//--/g'
оставляет только то, что находится между /
-
и замените каждое на --
остальные две команды добавляют несколько пробелов и |
Результат примерно такой:
|-----------eth0
|-------------queues