当我运行以下命令时,尽管find命令显示结果,但不会移动任何文件。
find "/Users/Vino/Media/test" -type f -size +100M \
-name *.mkv -o -name *.mp4 -o -name *.avi \
-exec mv {} /Users/Vino/Media/ \;
但当我删除.avi和.mp4的or
运算符时,它会实现它的意义
find "/Users/Vino/Media/test" -type f -size +100M \
-name *.mkv -exec mv {} /Users/Vino/Media/ \;
这有点令人费解,因为它是一个相当简单的命令,我曾经在OS X 10.6下运行。我现在正在使用OS X 10.9。
答案 0 :(得分:3)
将我的评论转化为答案。
你必须明确find
-o
的操作数。您可以通过使用()
find "/Users/Vino/Media/test" -type f -size +100M \
\( -name *.mkv -o -name *.mp4 -o -name *.avi \) \
-exec mv {} /Users/Vino/Media/ \;
来自the man page:
( expr )
Force precedence. Since parentheses are special to the shell,
you will normally need to quote them. Many of the examples in
this manual page use backslashes for this purpose: `\(...\)'
instead of `(...)'.