回显目录为bash for循环中的数字

时间:2018-01-11 19:21:43

标签: bash

例如,我在当前目录中循环播放目录:

for s in ./*/;
do
    echo $s
done
./4014/
./4015/
./4017/
./4018/

我的问题是如何使用每个目录进行循环,因为它是一个单独的数字,如:

4014
4015
4017
4018

2 个答案:

答案 0 :(得分:5)

您可以使用parameter expansion删除尾随的/

for folder in */; do
    echo "${folder%/}"
done

或者如果你想在其他目录中循环:

for folder in path/*/; do
    folder=${folder%/}
    echo "${folder##*/}"
done

您还可以使用basename

for folder in path/*/; do
    basename "${folder}"
done

引用扩展!

答案 1 :(得分:0)

使用 find 命令:

find . -maxdepth 1 -type d -printf "%f\n"