есть ли опция с командой 'ls', чтобы я видел только каталоги?

<p>иногда мне нужно проверять только каталоги, а не файлы. есть ли опция с командой ls? или есть какая-нибудь полезность для этого?</p><p><strong> edit </strong>: я использую mac os x и <code>ls -d</code> дает мне <code>.</code> хотя у меня есть каталоги.</p>

<p>я знаю, что уже есть выбранный ответ, но вы можете получить запрошенное поведение, просто <code>ls</code>:</p><pre><code>ls -ld -- */ </code></pre><p>(обратите внимание, что "-" отмечает конец параметров, предотвращая интерпретацию имен папок, начинающихся с дефиса, как дополнительных параметров команды.)</p><p>в этом списке будут перечислены все не скрытые (если вы не сконфигурируете глобусы shell для их расширения) каталоги в текущем рабочем каталоге, в котором он запущен (обратите внимание, что он также включает символические ссылки на каталоги). чтобы получить все подкаталоги какой-либо другой папки, просто попробуйте:</p><pre><code>ls -ld /path/to/directory/*/ </code></pre><p>обратите внимание, что -l является необязательным.</p>

<p>нет, но простая команда <code>find</code> сделает это:</p><pre><code>find . -type d -depth 1 </code></pre><p>или <code>grep</code></p><pre><code>ls -f | grep / </code></pre><p>вы можете затем псевдоним любой из них, если это необходимо.</p>

<p>мне также нужно было просматривать скрытые каталоги, поэтому я изменил приведенное выше предложение в соответствии со своими потребностями.</p><pre><code>ls -d -- */ .*/ </code></pre><p>(в зависимости от оболочки, это может также включать <code>.</code> а также <code>..</code>)</p>

<p>мне нравится утилита <a href="http://linux.die.net/man/1/tree">tree</a> , чтобы получить обзор структуры каталогов. он доступен в macports и во всех дистрибутивах linux, которые я пробовал.</p><pre><code>tree -d -l 2 </code></pre><p>это показало бы все каталоги, два уровня глубоко.</p>

<p>с <code>zsh</code> (как было найдено по умолчанию в macos, раньше даже было <code>/bin/sh</code> там), вы бы использовали квалификаторы glob для выбора файлов в зависимости от их типа:</p><ul> <li> <p>список не скрытых каталогов:</p> <pre><code>ls -d -- *(/) </code></pre></li> <li> <p>список всех каталогов:</p> <pre><code>ls -d -- *(d/) </code></pre> <p>(<code>.</code> а также <code>..</code> всегда исключены, добавляйте их по отдельности, если хотите)</p> </li> <li> <p>также добавьте символические ссылки на каталоги:</p> <pre><code>ls -d -- *(d-/) </code></pre> <p>(<code>-</code> заставляет применять дополнительные квалификаторы после разрешения символической ссылки).</p> </li> </ul>

<p>существует не только <strong> один вариант </strong> для просмотра каталогов ...</p><p>но вы можете использовать <code>-d</code> (список каталогов, а не их содержимое) и <code>*/</code> для сопоставления самих каталогов:</p><p><code>ls -d */</code></p><p>и попробуйте использовать точку, для скрытых, <code>ls -d .*/</code>.</p><p>просто для удовольствия, попробуйте: <code>ls -d</code> а также <code>ls */</code>. различия будут понятны!</p><p>ref:</p><ul> <li> <a href="https://stackoverflow.com/a/14352330/12453339">https://stackoverflow.com/a/14352330/12453339</a> </li> <li> <a href="https://unix.stackexchange.com/a/447829/385133">https://unix.stackexchange.com/a/447829/3851</a> </li> </ul>