尝试迭代本地目录中的所有文件而不使用“。”和“......”

时间:2017-04-19 19:39:52

标签: bash shell

尝试编写一个bash脚本来处理其运行的目录中的一堆子目录。我需要cd进入每个目录,编译一些代码,然后运行可执行文件。问题是,当我遍历当前目录中的文件时,它包含“。”。和“..”,我不希望那些被迭代。最简单的方法是什么?

我正在使用的当前代码:

for file in .* *
do 
echo "entering $file"
cd $file
done

输出如下:

entering .
entering ..

当它在我的本地目录中查找其他文件时,其中有太多目录无用。我该如何删除。和..从我迭代的列表?

如果这是一个愚蠢的问题,请道歉 - 这对于编写脚本非常新。

提前致谢。

1 个答案:

答案 0 :(得分:3)

shopt -s dotglob会使*包含点文件,但不包括...

3.5.8 Filename Expansion