查找:-exec 缺少参数

2023-12-25

今天我得到了一个命令的帮助,但它似乎不起作用。这是命令:

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

外壳返回

find: missing argument to `-exec'

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


A -exec命令必须以;(所以你通常需要输入\; or ';'以避免 shell 的解释)或+。不同的是,与;,每个文件调用该命令一次,其中+,它对所有文件名被调用的次数尽可能少(通常一次,但命令行有最大长度,因此它可能会被分割)。看这个例子:

$ cat /tmp/echoargs
#!/bin/sh
echo $1 - $2 - $3
$ find /tmp/foo -exec /tmp/echoargs {} \;
/tmp/foo - -
/tmp/foo/one - -
/tmp/foo/two - -
$ find /tmp/foo -exec /tmp/echoargs {} +
/tmp/foo - /tmp/foo/one - /tmp/foo/two

您的命令有两个错误:

首先,你使用{};,但是;必须是它自己的参数。

其次,命令结束于&&。您指定“运行查找,如果成功,则删除名为{};.“。如果你想在-exec命令,您需要在 shell 中显式运行它,例如-exec sh -c 'ffmpeg ... && rm'.

但是您不应该在 bash 命令中添加 {},当存在特殊字符时会产生问题。相反,您可以在之后将附加参数传递给 shell-c command_string (see man sh):

$ ls
$(echo damn.)
$ find * -exec sh -c 'echo "{}"' \;
damn.
$ find * -exec sh -c 'echo "$1"' - {} \;
$(echo damn.)

你看到$在第一个示例中,thing 由 shell 进行评估。假设有一个文件名为$(rm -rf /) :-)

(旁注:-不需要,但将命令后的第一个变量赋值给该变量$0,这是一个特殊变量,通常包含正在运行的程序的名称,将其设置为参数有点不干净,尽管它可能不会造成任何伤害,所以我们将其设置为-并开始于$1.)

所以你的命令可能是这样的

find -exec bash -c 'ffmpeg -i "$1" -sameq "$1".mp3 && rm "$1".mp3' - {} \;

但还有更好的方法。寻找支持and and or,所以你可以做类似的事情find -name foo -or -name bar。但这也适用于-exec,如果命令成功退出,则计算结果为 true,否则计算结果为 false。看这个例子:

$ ls
false  true
$ find * -exec {} \; -and -print
true

它仅在命令成功时才运行打印,它是这样做的true但不是为了false.

所以你可以使用两个 exec 语句链接-and,并且只有前者运行成功后才会执行后者。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找:-exec 缺少参数 的相关文章

  • 关闭终端后保持express进程存活

    我试图在关闭终端后保持进程正常运行 是一个带有express的node js项目 基本上 对于其他进程 我通过以下方式保持进程处于活动状态 node server js 我这样就可以完成 SSH 连接并关闭控制台 但对于 Express 我
  • 在 bourne shell 中的用户定义函数中使用 getopts

    是否可以将命令行参数从 bourne 脚本内传递到函数中 以便允许 getopts 处理它们 我的脚本的其余部分很好地打包到函数中 但开始看起来我必须将参数处理移至主逻辑中 现在是这样写的 但是不行 processArgs while ge
  • 执行bash脚本时如何显示行号

    我有一个测试脚本 其中有很多命令并将生成大量输出 我使用set x or set v and set e 因此当发生错误时脚本将停止 但我还是很难定位到哪一行执行停止了 从而定位问题所在 有没有一种方法可以在每行执行之前输出脚本的行号 或者
  • 如何在节点中转义 shell 命令的字符串?

    In nodejs http nodejs org 执行外部命令的唯一方法是通过 sys exec cmd 我想调用外部命令并通过标准输入为其提供数据 在nodejs中 似乎还没有一种方法可以打开命令 然后将数据推送到它 仅执行并接收其标准
  • “形式参数“foo”与多个参数匹配”-如何在 R 中处理这个问题?

    有时 调用带有某些参数的函数会导致错误消息formal argument foo matched by multiple actual arguments 是否可以打印不明确的实际参数列表 我问这个问题的原因是目前的问题plot类对象的函数
  • “sed” 在文件中插入反斜杠

    Tool Windows 版 Git Bash Problem 尝试在目录中每个文件的顶部插入文本 connectcentral Code for f in DIR sql do sed i 1i connect central f don
  • sed - 打印仅以元音开头的单词

    如何反转此 sed 以仅打印以元音开头的单词 我试过放进去 在下面的 sed 命令中 但它不起作用 我认为这只会颠倒上面的规则 echo Always take a Big Apple sed r s b AEIOUaeiou w g 你需
  • 在 awk 中按特定顺序打印文件

    我正在关注这个链接https stackoverflow com a 54599800 10220825 https stackoverflow com a 54599800 10220825 file txt Iteration 1 RA
  • 使用 grep 仅打印上下文

    Using grep http www computerhope com unix ugrep htm 您可以打印与您的搜索查询匹配的行 添加一个 C选项将打印两行周围的上下文 如下所示 gt grep C 2 lorem some con
  • Bash shell 中的“[ ]”与“[[ ]]”[重复]

    这个问题在这里已经有答案了 这可能已经得到回答 但我还是要问 我有两个版本的脚本 comp sh bin sh export tDay date Y m d newfile filename tDay filename filename 2
  • 如何使用AWK从文件中连续输出行

    我有一个多行文件 我想连续输出文件的某些行 比如第一次 从第1行打印到第5行 下次 打印第2行到第6行 依此类推 我发现 AWK 是一个非常有用的函数 我尝试自己编写代码 但它什么也没输出 以下是我的代码 bin bash for n in
  • 解决 emacs 错误的想法:“应用:生成子进程:exec 格式错误”

    我正在尝试将 rdebug 与 emacs 和 cygwin 一起使用 但遇到了麻烦 每当我执行 M x rdebug 并为其提供适当的脚本来运行时 它都会因错误而停止 apply Spawning child process exec f
  • 调试神秘的git+ssh+proxy失败“bash:没有这样的文件或目录”的艰难方法

    我正在尝试通过 SOCKS5 代理克隆 github 存储库 在 ssh config I have Host github com github com ProxyCommand usr bin nc X 5 x 127 0 0 1 70
  • 强制节点在 Windows 上使用 git bash

    我有一个 package json 文件 如下所示 name APP version 3 0 0 private true scripts start node app js test test dbLoad env db test tes
  • 如何从 shell 使用 fnmatch?

    在通用 shell 脚本中 我想使用 shell 模式匹配来过滤文本文件的行 我在 files txt 中有一个文件名列表 file1 txt file2 sh file3 png 我在patterns txt 中有一个模式列表 other
  • 在snakemake规则中使用pyenv

    我正在使用 Snakemake 来实现一个漫长而复杂的管道 其中涉及一些外部编写的 python2 脚本 当我尝试使用 pyenv 指定 python2 时 pyenv shell命令失败 同时pyenv global and pyenv
  • 在 bash 中传递多个数组作为参数

    我已经成功地能够调用单个数组作为参数 但在传递多个数组时遇到问题 这是我到目前为止所拥有的 calling function array1 1 2 3 4 array2 a b c d array3 called function arra
  • if ["$i" -gt "$count"];出现错误

    我试图将 f count f 1 f 2 名称放入数组中 下面是代码 echo Enter the count read count echo count arr i 1 while true do if i gt count then e
  • 使用文本框搜索 datagridview 中的列 (vb.net)

    如何使用文本框搜索 datagridview 中的列 我正在使用 vb net 2010 我有一个带有数据源的 Datagridview 下面是我用于填充 datagridview 的代码 网格视图将有 4 列 Private Sub Lo
  • 无法从外部 bash 脚本正确设置 MySQL 密码

    我有两个脚本 主要的一个脚本执行一些不同的操作并调用第二个脚本 第二个脚本安装 MySQL 从我的主脚本中我做了这样的事情 read p Set the password for the database min 4 characters

随机推荐

  • 并发、并行和异步方法有什么区别?

    并发是指两个任务在不同的线程上并行运行 但是 异步方法并行运行 但在同一个线程上 这是如何实现的 另外 并行性怎么样 这3个概念有什么区别 并发和并行实际上与您正确推测的原理相同 两者都与同时执行的任务有关 尽管我想说并行任务应该是真正的多
  • Wpf:在多个控件上应用自定义样式的工具提示

    我正在使用 WPF 应用程序 我创建了一个自定义控件库 在其中自定义了所有控件 这意味着添加了一些功能并重新设计了它们的样式 我也以同样的方式重新设计了工具提示 我在其他项目中使用这个自定义库 除了工具提示之外 一切都工作正常 工具提示样式
  • 如何使用两个按钮从 api 制作日期和时间列表水平视图,以通过颤动滚动列表视图

    我在颤振日期和时间页面视图中 当用户单击时间时 将单击的时间设置为灰色 并将其他时间设置为透明颜色 在此图片中您可以看到所选日期 https i stack imgur com jQ8dd jpg请注意 用户可以再次重新选择 以便旧的选择设
  • 如何转换 JToken

    我有一个值为 1234 的 JToken 如何将其转换为整数值 如 var totalDatas 1234 var tData jObject totalDatas int totalDatas 0 if tData null totalD
  • Pandas 中的plot 和iplot 有什么区别?

    在 Jupyter Notebook 中显示图形时 plot 和 iplot 有什么区别 我刚刚开始在 Python 3 6 6 中使用 iplot 我认为它使用了 Cufflinks 包装器来运行 Matplotlib 这似乎是我用简单的
  • MongoDB 数组 - 原子更新或推送元素

    我在 MongoDB 中有以下文档 id ObjectId 521aff65e4b06121b688fabc user abc servers name server1 cpu 4 memory 4 name server2 cpu 6 m
  • 如何在MVC单元测试类中模拟Request.Files[]?

    我想在 MVC 单元测试中测试控制器方法 为了测试我的控制器方法 我需要一个长度为 1 的 Request Files 集合 我想模拟 Request Files 因为我在控制器方法渲染的视图上使用了文件上传控件 任何人都可以建议我如何在单
  • 如何使用GD检查GIF是否具有透明度?

    我找到了问题如何使用GD检查图像是否具有透明度 https stackoverflow com q 5495275但答案都是针对 PNG 文件的 是否有解决方案可以使用 GD 扩展在 PHP 中检查 GIF 图像是否具有透明度 我假设 al
  • 依赖算法 - 找到要安装的最小软件包集

    我正在研究一种算法 其目标是找到安装包 X 的最小包集 我将通过一个例子更好地解释 X depends on A and E or C A depends on E and H or Y E depends on B and Z or Y
  • 打开新选项卡时使用 JSF 受保护视图时出错

    我已经设置了我的 Web 应用程序 通过在 faces config protected views 中列出各个页面来防止 CSRF 这在本地运行时效果很好 但在部署到服务器后 我最终在打开页面链接时收到这些错误 javax faces a
  • brew install python3 没有安装 pip3

    我使用 homebrew 安装了 python3 但它没有安装 pip3 或者我应该说它已安装但它无法识别该命令 这是我所做的 brew install python3 这安装了 python3 但最后抛出了一个错误 说它无法链接 pyth
  • 如何通过缓存制作离线地图(使用leaflet OSM)?

    我正在尝试通过浏览器中的缓存 IndexedDB 制作离线地图 我理解的概念是 当连接到互联网时 我首先下载并存储地图的图块 然后我必须逻辑上离线加载图块 但是 我无法弄清楚 如何存储它们以及如何逻辑地再次加载它们 我被困在这里了 我正在使
  • 为什么CameraX.bindToLifecycle在1.0.0-alpha05中不支持三种情况?

    我正在学习CameraX API CameraXBasic是一个office示例代码 代码A基于CameraFragment kt https github com android camera samples blob master Ca
  • 部署App Engine应用程序时如何设置自定义版本?

    我正在部署一个符合 Google 应用引擎标准的应用程序 这是一个 Java Kotlin 应用程序 但问题不一定是特定于此的 我正在使用最新的 Gradle 插件 答案可能是特定于此的 就像这些年来一样 我指定了一个项目 ID 比方说我的
  • 在 webpack 中传递环境相关变量

    我正在尝试将 Angular 应用程序从 gulp 转换为 webpack 在 gulp 中 我使用 gulp preprocess 来根据 NODE ENV 替换 html 页面中的一些变量 例如数据库名称 使用 webpack 实现类似
  • Python tkinter 树视图列大小

    我有一个Treeview in tkinter Linux 上的 Python 3 6 但 Windows 上也会发生同样的情况 我用它来模拟一种电子表格布局 我的问题是 如果我运行下面的示例代码 并调整 第 1 列 的大小 那么随着 第
  • 导出ipa文件失败

    使用 Xcode v11 3 我尝试导出 IPA 文件并收到此错误 导出期间发生错误 因此无法读取数据 格式不正确 这显示在 IDEDistribution standard log 中 System Library Frameworks
  • Cruise 与 TeamCity 与 CruiseControl.net [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 单例 PDO 模型 - 层次结构

    抱歉英语不好 我是巴西人 更糟糕的是谈论编程 我们走吧 我有这个 class DataBase extends PDO var object PDO private static instance Cria uma inst ncia do
  • 查找:-exec 缺少参数

    今天我得到了一个命令的帮助 但它似乎不起作用 这是命令 find home me download type f name rm exec ffmpeg i sameq mp3 rm 外壳返回 find missing argument t