我有一个名为 的脚本script.sh
。我不知道它在文件系统中的哪个位置,但我确实知道它存在。
如何找到该脚本、使其可执行并通过命令行在一行中运行它?
我想用一个命令来运行它。查找、使其可执行并执行。
答案1
find
在家里使用以下命令:find ~ -name script.sh
如果上面没有找到任何内容,请
find
在整个 F/S 上使用该命令:find / -name script.sh 2>/dev/null
(
2>/dev/null
将避免显示不必要的错误)。启动它:
/<whatever_the_path_was>/script.sh
立刻就会给予;有关如何查找和执行的更多信息:
find / -name "script.sh" -exec chmod +x {} \; -exec {} \; 2>/dev/null
(请注意,如果您有多个“ script.sh
”,它将全部运行)
答案2
您的文件系统上可能有多个脚本调用完全相同的东西,因此根据名称定位它然后盲目执行它可能是一个非常糟糕的主意。
要找到它,请使用find
J. Chomel 在您问题的另一个答案中所示的方法,或使用locate
:
$ locate script.sh
script.sh
这将根据系统上的数据库搜索找到所有用户可读的位置中调用的所有文件。请注意,数据库会定期更新(每天一次或每周一次,具体取决于其配置方式),因此不会找到自上次文件系统扫描以来添加的文件,但它比find
.
您可以使用select
生成一个菜单,从中选择正确的脚本并执行它:
$ select script in $( locate script.sh ); do echo "$script"; break; done
更改echo
为command
实际运行您选择的脚本,而不仅仅是打印其名称。