使用find -print0匹配双文件仅显示一个的问题咨询
问题原因与解决办法
这是因为find命令的逻辑运算符优先级问题:-o(逻辑或)的优先级低于其他测试/动作参数。
你添加-print0后的命令实际执行逻辑是:
- 匹配
.mp4文件,但未指定输出动作,因此不会输出 - 匹配
.webm文件并执行-print0输出
要让-print0作用于两个匹配条件,需要把两个-iname条件用括号括起来(括号在shell中需要转义),确保它们作为一个整体被处理:
find . -maxdepth 1 -type f \( -iname "*.mp4" -o -iname "*.webm" \) -print0
这样两种格式的文件都会被-print0输出,再管道给parallel就能正常处理了。
内容的提问来源于stack exchange,提问作者kurokirasama
相关产品推荐
相关产品推荐

