文章摘要
在终端运行可执行程序时,不需要先进入文件所在目录。只要正确指定文件的绝对路径或相对路径即可运行;若程序所在目录已加入系统PATH变量,甚至可以直接输入文件名运行。对于当前目录下的程序,需添加"./"前缀(因当前目录默认不在PATH中)。文章通过ls和/opt/toybox等例子说明,只要路径正确或PATH包含目录,在任何位置都能执行程序。
详细解释
1. 直接运行
如果你在命令行输入一个命令,比如:
ls
系统会在环境变量 $PATH
指定的各个目录下查找名为 ls
的可执行文件,找到后直接运行。你不需要进入 /bin
目录。
2. 指定路径运行
如果你想运行某个目录下的可执行文件,可以直接指定路径,比如:
/home/user/myapp
或者
./myapp
(./
表示当前目录)
这时你也不需要进入到 /home/user
目录,只要路径写对了就可以运行。
3. 进入目录运行
当然,你也可以先进入目录再运行:
cd /home/user
./myapp
这种方式也可以,但不是必须的。
总结
- 只要你能正确指定可执行文件的路径(绝对路径或相对路径),就可以在任何目录下运行它。
- 如果可执行文件所在目录已经加入
$PATH
,你甚至可以直接输入文件名运行。 - 只有在当前目录下运行本地可执行文件时,才需要加
./
前缀(因为当前目录默认不在$PATH
里)。
举例
假设有个可执行文件 /opt/toybox
,你可以这样运行:
- 任何目录下都可以:
/opt/toybox ls
- 如果你在
/opt
目录下,也可以:cd /opt ./toybox ls
- 如果
/opt
已加入$PATH
,可以直接:toybox ls
结论:
命令行运行可执行文件,不需要进入到对应目录,只要路径写对或在 $PATH
里即可。