Как мне рекурсивно перечислить все каталоги в определенном месте в ширину?

Если вы хотите сделать это .bash-profile с помощью стандартных инструментов, следующий bash-variables конвейер должен работать:

find . -type d | perl -lne 'print tr:/::, " $_"' | sort -n | cut -d' ' -f2

То shell-commands есть

  1. найти и распечатать все каталоги здесь подробно в первую очередь
  2. подсчитать количество косых черт в каждом каталоге и добавить его к пути
  3. сортировать по глубине (т. е. количеству косых черт)
  4. извлечь только путь.

Чтобы ограничить найденную shell глубину, добавьте аргумент bash -maxdepth к команде find.

Если .bashrc вы хотите, чтобы каталоги shell отображались в том же порядке, в ksh котором они были найдены, используйте ksh «sort -n -s» вместо «sort linux -n»; флаг "-s" стабилизирует shell-commands сортировку (т. е. сохраняет shell порядок ввода среди элементов, которые shellscript сравниваются одинаково).

linux

bash

shell

ksh

2022-10-18T01:14:20+00:00