Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Unix查找:多个-o和exec不能一起工作_Bash_Unix_Find_Osx Mavericks - Fatal编程技术网

Bash Unix查找:多个-o和exec不能一起工作

Bash Unix查找:多个-o和exec不能一起工作,bash,unix,find,osx-mavericks,Bash,Unix,Find,Osx Mavericks,当我运行以下命令时,尽管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的或操作符时,它就完成了它的本意 find "/Users/Vino/Media/test" -type f -size +100M

当我运行以下命令时,尽管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的
操作符时,它就完成了它的本意

find "/Users/Vino/Media/test" -type f -size +100M \
  -name *.mkv -exec mv {} /Users/Vino/Media/ \;
这有点令人费解,因为这是一个相当简单的命令,我曾经在OSX10.6下运行过。我现在正在使用OS X 10.9。

将我的评论转化为答案

您必须弄清楚
查找
的操作数是
-o
。您可以使用
()
进行分组:

find”/Users/Vino/Media/test“-f型-尺寸+100M\
\(-name*.mkv-o-name*.mp4-o-name*.avi\)\
-exec mv{}/Users/Vino/Media/\;
发件人:

(expr)
强制优先。由于圆括号对于shell是特殊的,
您通常需要引用它们。中的许多示例
本手册页为此目的使用反斜杠:“\(…\)”
而不是“(…)”。

如果您将
-name*.mkv-o-name*.mp4-o-name*.avi
更改为
\(.name*.mkv-o-name*.mp4-o-name*.avi\)
?@Biffen,效果良好。谢谢。维诺,欢迎来到斯塔克沃夫@如果你把你的评论作为回答,维诺可以接受。