文件管道与查找

时间:2016-08-24 18:22:42

标签: piping

当我运行命令cd dir && find . -name "*.html"时,它会完美地显示所有html文件,包括子目录中的html文件。但是当我运行命令cd dir && find . -name "*.html" | for f in *.html; do "action"; done时,只在当前目录中为我循环,但不会更改子目录中的html文件。我尝试在for循环中包含find但只导致错误消息。

1 个答案:

答案 0 :(得分:0)

您可以将其重写为

cd dir && find . -name "*.html" | while read f; do "action"; done

当你做的时候

... for f in *.html; ...

你实际列出当前目录中的html文件,实际上它等同于ls *.html,而不是过滤从管道收到的列表(被忽略)