当我运行命令cd dir && find . -name "*.html"
时,它会完美地显示所有html文件,包括子目录中的html文件。但是当我运行命令cd dir && find . -name "*.html" | for f in *.html; do "action"; done
时,只在当前目录中为我循环,但不会更改子目录中的html文件。我尝试在for循环中包含find但只导致错误消息。
答案 0 :(得分:0)
您可以将其重写为
cd dir && find . -name "*.html" | while read f; do "action"; done
当你做的时候
... for f in *.html; ...
你实际列出当前目录中的html文件,实际上它等同于ls *.html
,而不是过滤从管道收到的列表(被忽略)