gpt4 book ai didi

linux - find 命令的 "exec"功能可以在后台启动程序吗?

转载 作者:太空狗 更新时间:2023-10-29 11:24:10 25 4
gpt4 key购买 nike

我想做这样的事情:

find . -iname "*Advanced*Linux*Program*" -exec kpdf {} & \;

可能吗?其他一些类似的方法可用吗?

最佳答案

首先,它不会像您输入的那样工作,因为 shell 会将其解释为

find . -iname "*Advanced*Linux*Program*" -exec kpdf {} &
\;

这是在后台运行的无效 find,后跟不存在的命令。

即使转义它也不起作用,因为 find -exec 实际上是 exec 给定的参数列表,而不是将它提供给 shell(这是实际处理的& 用于背景)。

一旦您知道就是的问题所在,您所要做的就是启动一个 shell 将这些命令提供给:

find . -iname "*Advanced*Linux*Program*" -exec sh -c '"$0" "$@" &' kpdf {} \;

另一方面,考虑到你正在尝试做的事情,我会建议其中一个

find ... -exec kfmclient exec {} \;  # KDE
find ... -exec gnome-open {} \; # Gnome
find ... -exec xdg-open {} \; # any modern desktop

这将在您的桌面环境关联的默认程序中打开文件。

关于linux - find 命令的 "exec"功能可以在后台启动程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/853451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com