Есть ли bash, эквивалентный глобализации типа файла в zsh? - PullRequest
4 голосов
/ 26 октября 2010

В zsh вы можете квалифицировать глобусы с утверждениями типа файла, например, *(/) соответствует только каталогам, *(.) только нормальным файлам, есть ли способ сделать то же самое в bash, не прибегая к поиску?

Ответы [ 2 ]

3 голосов
/ 26 октября 2010

вы можете попробовать

ls -ltrd */ #match directories using -d and the slash "/"

или

echo */

или

for dir in */
do
  ...
done

Если вам нужно сделать это рекурсивно, и у вас есть Bash 4 +

$ shopt -s globstar
$ for dir in **/*/; do echo $dir; done
0 голосов
/ 26 октября 2010

Я не думаю, что есть способ сделать это напрямую, но не забывайте, что вы можете использовать test options -d и -f, чтобы определить, относится ли имя к каталогу или файл.

for a in *; do
  if [ -d "$a" ]; then
    echo Directory: $a
  elif [ -f "$a" ]; then
    echo File: $a
  fi
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...