仅列出文件夹而不是文件

时间:2013-12-23 10:36:00

标签: bash

我有以下srcipt,它应该显示目录中的所有文件夹,但目前脚本列表还包含/ var / www

下的文件
 declare -a dirs
 i=1
 for d in /var/www/*
 do
         dirs[i++]="${d%/}"
 done

 for((i=1;i<=${#dirs[@]};i++))
 do
         echo $i "${dirs[i]}"
 done

我只能更改列表中的文件夹?

4 个答案:

答案 0 :(得分:1)

怎么样:

printf "%s\n" /var/www/*/

答案 1 :(得分:0)

您可以检查它是否是目录。说:

[ -d "$d" ] && dirs[i++]="${d%/}"

而不是说:

dirs[i++]="${d%/}"

引用help test

  -d FILE        True if file is a directory.

答案 2 :(得分:0)

for i in *
do
  [ -d ${i} ] && echo $i
done

答案 3 :(得分:0)

而不是:

for d in /var/www/*

......这样做(注意尾随/):

for d in /var/www/*/

它只匹配目录。