如何使用shell脚本遍历特定目录中的所有文件?我在当前工作目录中有一个目录,即 .temp。在 .temp 中还有另一个目录索引,其中包含一些文件。
我尝试了以下方法:
for file in ./.temp/index/*
do
echo "File in index: $file"
done
for file in "./.temp/index"/*
do
echo "File in index: $file"
done
但是,它会将 $file
打印为 ./.temp/index/$file
。例如:
File in index: ./.temp/index/first.txt
File in index: ./.temp/index/second.txt
File in index: ./.temp/index/third.txt
...
是否有符合 POSIX 标准的方式来循环遍历该目录中的实际文件?
答案 0 :(得分:0)
for _file in `find . -type f`;
do
echo "File: $_file";
done
-type f
将在目录中查找文件。您可以根据需要添加其他过滤器。
答案 1 :(得分:0)
您可以通过使用 find 和 -printf 使用 %f 仅打印文件名来避免同时使用循环:
find ./.temp/index -maxdepth 1 -type f -printf "File in index: %f\n"