2016-08-24 52 views
0

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

回答

0

你可以把它改写为

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

你这么做的时候

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

你在哪里,其实上市在当前目录中的HTML文件,它相当于事实上ls *.html,而不是过滤从管道收到的清单(正在被忽略)