Bash
如何僅遍歷 bash 中的目錄?
我有一個包含一些目錄和一些文件的文件夾(有些是隱藏的,以點開頭)。
for d in *; do echo $d done
將遍歷所有文件和目錄,但我只想遍歷目錄。我怎麼做?
您可以在末尾指定一個斜杠以僅匹配目錄:
for d in */ ; do echo "$d" done
如果要排除符號連結,
continue
如果目前條目是連結,請使用循環測試。您需要從名稱中刪除尾部斜杠,以便-L
能夠將其辨識為符號連結:for d in */ ; do [ -L "${d%/}" ] && continue echo "$d" done
您可以使用以下方法進行測試
-d
:for f in *; do if [ -d "$f" ]; then # $f is a directory fi done
這是文件測試運算符之一。