![如何执行 find 找到的文件](https://linux22.com/image/1416532/%E5%A6%82%E4%BD%95%E6%89%A7%E8%A1%8C%20find%20%E6%89%BE%E5%88%B0%E7%9A%84%E6%96%87%E4%BB%B6.png)
我在目录树下有一些可执行文件。我想找到它们并以最简单的方式执行它们。到目前为止,我已经尝试过这个:
find . -perm 0775 -type f | xargs exec
但是 exec 不是可执行文件,它是 bash 内部文件。我可以创建一个包装器脚本,如下所示:
#!/bin/bash
# exec.sh
exec $1
然后就可以运行了find . -perm 0775 -type f -exec ./exec.sh {} \;
但是必须有一个更优雅、更简短的方法来做到这一点。
答案1
只需放弃脚本即可。
find . -perm 0775 -type f -exec '{}' ';'
工作得很好!
答案2
xargs
并不真正适合做这件事;它主要用于提供一个固定的命令,其参数从标准输入读取。
但是你可以使用简单的 shell 循环直接调用程序:
find . -perm 0775 -type f | while read program; do
$program
done