Как исключить эту/текущую/точную папку из поиска "тип d"
find . -type d
может использоваться для поиска всех каталогов ниже некоторой начальной точки. Но он также возвращает текущий каталог (.), что может быть нежелательным. Как его можно исключить?
В этом конкретном случае (.) гольф лучше, чем решение mindepth (24 против 26 символов), хотя это, вероятно, немного сложнее напечатать из-за !.
Чтобы исключить другие каталоги, это будет лучше для гольфа и потребует переменную для СУХОЙ:
D="long_name"
find "$D" ! -path "$D" -type d
Мое дерево решений между ! и -mindepth:
script? Используйте ! для переносимости.
интерактивная сессия по GNU?
исключить .? Бросьте монету.
исключить long_name? Используйте -mindepth.
Ответ 2
Не только глубина рекурсии find может управляться параметром -maxdepth, глубина также может быть ограничена "сверху" с использованием соответствующего параметра -mindepth. Итак, что действительно нужно:
Ну, простой обходной путь (решение не работает для меня на git bash)
find * -type d
Возможно, он не очень эффективен, но выполняет свою работу, и это то, что нам иногда нужно.
[Редактировать]: как @AlexanderMills заявил, что он не будет отображать скрытые каталоги в корневом каталоге (например, ./.hidden), но он покажет скрытые подкаталоги (например, ./folder/.hiddenSub). [Протестировано с git bash на windows]