我今天得到了一个命令的帮助,但它似乎没有工作。命令如下:

find /home/me/download/ -type f -name "*.rm" -exec ffmpeg -i {} -sameq {}.mp3 && rm {}\;

shell返回

find: missing argument to `-exec'

我基本上要做的是递归地遍历一个目录(如果它有其他目录),并在.rm文件类型上运行ffmpeg命令,并将它们转换为.mp3文件类型。完成此操作后,删除刚刚转换的.rm文件。


当前回答

对于在使用GNU时遇到问题的其他人,请在Windows命令提示符中查找二进制文件。分号需要用^转义

find.exe . -name "*.rm" -exec ffmpeg -i {} -sameq {}.mp3 ^;

其他回答

我觉得你得逃跑。

find /home/me/download/ -type f -name "*.rm" -exec ffmpeg -i {} \-sameq {}.mp3 \&\& rm {}\;

如果您仍然得到“find: missing argument to -exec”,请尝试将execute参数括在引号中。

find <file path> -type f -exec "chmod 664 {} \;"

当我在结束后留下空白时,我得到了同样的错误;-exec命令的。所以,去掉后面的空白;

仅供参考: 我刚刚尝试在Cygwin系统(Windows上模拟UNIX)上使用“find -exec”命令,似乎分号前的反斜杠必须被删除: Find ./ name "blabla" -exec wc -l {};

我现在明白了。当你需要在一个find的exec中运行两个命令时,实际上你需要有两个独立的execs。这最终对我有用。

find . -type f -name "*.rm" -exec ffmpeg -i {} -sameq {}.mp3 \; -exec rm {} \;