2013-12-23 91 views
0

我有以下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 

文件shoult我改變什麼只列出陣列中的文件夾?

+0

只是'find/var/www -type d'怎麼辦? – fedorqui

回答

0

你可以執行檢查它是否是一個目錄。你說:

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

,而不是說:

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

報價help test

-d FILE  True if file is a directory. 
1

如何:

printf "%s\n" /var/www/*/ 
0
for i in * 
do 
    [ -d ${i} ] && echo $i 
done 
0

相反的:

for d in /var/www/* 

...做這樣的(注意尾隨/):

for d in /var/www/*/ 

這將只匹配目錄。

相關問題