Есть ли способ перечислить только папки в каталоге, используя команды bash? (так как ls
команда выводит список всех файлов и папок)
linux
command-line
ls
SpiXel
источник
источник
ls -d -- */
иls -d */
?--
обычно используется для обозначения конца опций, так что если файл называется-l
ls, он не будет интерпретироваться как опция формата длинного списка.Ответ Стивена Мартина дал предупреждение, и перечислил текущую папку, так что я бы предложил
(Это для Linux; я не смог найти -maxdepth и -mindepth на справочной странице POSIX для поиска)
источник
ls -d -- */
опция, так как яfind
тоже найду скрытые каталоги. Который иногда может быть полезным, но также иногда вызывает проблемы. Я надеюсь, что этот комментарий может помочь другим. +1Перечислю только папки. И, как указал Тедди, вам понадобится -maxdepth, чтобы остановить его повторное использование в sub dirs.
источник
-maxdepth 1
тоже хотите .Даниэль ответ правильный. Вот несколько полезных дополнений.
Чтобы избежать отображения скрытых папок (например
.git
), попробуйте это:И чтобы заменить косую черту в начале
find
вывода в некоторых средах, используйте это:источник
Вы "не должны" анализировать вывод ls, или так сказано. Причиной этого является то, что вывод предназначен для восприятия человеком, и это может усложнить его анализ, если я помню.
если вы не хотите использовать ls или find, вы можете попробовать отфильтровать "*" с помощью "[-d]".
Я сделал именно это, по какой-то причине ls и обнаружил, что он не работал (имена файлов с пробелами и скобками, я думаю, или что-то еще, что я пропустил), затем я сделал что-то вроде
источник
Просто чтобы подчеркнуть вещь, которая смутила меня здесь, в отношении выбора шаблонов глобуса; скажем, у вас есть это:
Итак, скажем, здесь вы хотите выбрать только
mydir*
каталоги. Обратите внимание, что если вы пропустите завершающий слеш, такжеls -d
будут перечислены файлы:... однако, с завершающей косой чертой, в списке только каталоги:
источник
printf "%s\n" */
перечислит все каталоги в $ PWD.echo */
также будет работать, но в длинной одной строке, сложнее, когда в именах есть пробелы.источник
Вы также можете использовать:
Или же:
источник