Bash Unix查找:多个-o和exec不能一起工作
当我运行以下命令时,尽管find命令显示结果,但不会移动任何文件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 "/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,效果良好。谢谢。维诺,欢迎来到斯塔克沃夫@如果你把你的评论作为回答,维诺可以接受。