循环遍历目录并在Linux上执行命令

时间:2017-07-28 09:28:51

标签: linux loops unix directory

Ex:{pwd} / home / vrm / 假设这个目录里面有100个目录。像dir2,dir2,dir3等......

我想去每个目录并执行一个命令(比如说psh make clean)。

我该怎么办?请指教。

2 个答案:

答案 0 :(得分:0)

我通常使用以下内容遍历目录

find . -type d -print0 | while read  -d $'\0' dname; do echo "DIR: ${dname}"; done

请务必双引号变量dname,因为它可能包含空格。

答案 1 :(得分:0)

在sh中,您可以使用for循环。请注意.[^.]*捕获(大多数)“点”目录。

for i in .[^.]*/. */. ; do
 (cd "$i"; pwd)
done

它会在名为“..foo”的目录上失败,或者其他什么。我想可以添加..?*。我没试过。