如何通过 grep 执行文件

如何通过 grep 执行文件

我是一名希望进阶到中级水平的基础用户。好的,我有一个文件 XAMPP(manager-linux-x64.run),当我执行

sudo ./manager-linux-x64.run

它有效。因此,我尝试通过从其目录中执行此操作来成为专业人士

ls | grep manager-linux-x64.run | sudo xargs ./

它不起作用。它会抛出这个错误

xargs: ./: Permission denied

manager-linux-x64.run 的文件输出是

manager-linux-x64.run: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped

我本质上想要做的是获取目录中的文件列表,grep 可执行文件,管道输出并使用执行它,./manager-linux-x64.run因为(sh,bash 不适用于 .run 文件)。

此外,还有其他命令可以运行 .run 本身吗?

答案1

答案是子 shell。试试这个:

realpath $(ls) | grep .run$ | xargs sh -c

或者:

ls -d ./* | grep .run$ | xargs sh -c

这些都可以,但最好使用寻找如果您要尝试做的是在满足某些条件时执行文件。

find $PWD -maxdepth 1 -type f -name "*.run" -exec {} \;


笔记:

文件的可执行权限必须设置. 更改为修改模式如果需要的话。

一个警告:前面的单行代码将尝试执行它们匹配的任何内容。阅读点斜线

“...用户可以省去在命令前加点斜线的麻烦(...)然而,出于安全考虑,这通常是不可取的...”

相关内容