我有几个uninstall
文件。我要把他们全部找出来,一一处决。我知道 find 和 exec 组合,所以我尝试了
find . -name uninstall -exec {}\;
但这给了我这样的错误:
find: missing argument to `-exec'
由于它是一个常规文件,我无法给出参数。我只是在终端中这样运行
./uninstall
我怎样才能找到并执行这些文件?
答案1
必须;
是一个单独的参数,该参数告诉find
运行命令的结束位置:
find . -name uninstall -type f -exec {} \;
对于某些find
实现,您可以在-executable
之前添加谓词,-exec
以便只尝试执行实际可执行的文件。
答案2
您需要指定一个 shell 来启动该文件,例如
find . -name uninstall -exec sh {} \;
或者
find . -name uninstall -exec bash {} \;
答案3
通过寻找+壳管道:
find . -name uninstall | sh