首页 > 解决方案 > 查找不同类型的文件并移动到特定目录

问题描述

查找 *.mkv 和 *.mp4 有效

find /home6/movies/ -name '*.mp4' -o -name '*.mkv'

但由于某种原因移动它们部分失败并且只移动 mkv 文件

find /home6/movies/ -name '*.mp4' -o -name '*.mkv' -exec mv {} /home6/archive/ \;

我是否为此任务使用了不正确的查找开关“-o”?

标签: linuxbashfindmove

解决方案


看起来您需要将 or 表达式括在括号中,以便 exec 适用于两个匹配项。

这是一个类似的问题:`find -name` pattern that matches multiple patterns

find /home6/movies/ \( -name '*.mp4' -o -name '*.mkv' \) -exec mv {} /home6/archive/ \;

推荐阅读