通过完整路径执行Linux二进制文件:.//home/juping/ffmpeg为何无法运行?
为什么
.//home/juping/ffmpeg无法运行? 这个问题其实是对Linux路径解析规则的小误解,咱们一步步拆解清楚:
先搞明白
./的真实含义:./是相对路径的起始标记,它代表的是你当前所在的工作目录。比如你在/home/zhangsan目录下时,./document.txt就等价于/home/zhangsan/document.txt。.//home/juping/ffmpeg的实际解析结果:Linux系统会把连续的多个/合并成一个,所以这个路径其实等价于./home/juping/ffmpeg——也就是让系统去当前工作目录下的home/juping子目录里找ffmpeg。如果你的当前目录下根本没有home/juping这个嵌套子目录,自然会提示找不到文件,运行失败。正确的无切换目录运行方式:
- 直接使用绝对路径:
/home/juping/ffmpeg(绝对路径本身就是从根目录/开始定位,完全不需要加./前缀) - 如果当前目录和目标目录有相对位置关系,也可以用正确的相对路径(比如你当前在
/home目录下,就可以用./juping/ffmpeg)
- 直接使用绝对路径:
举个实际场景例子:假设你当前工作目录是/root,这时候输入.//home/juping/ffmpeg,系统会尝试访问/root/home/juping/ffmpeg,这个路径显然不存在;而直接输入/home/juping/ffmpeg,系统会从根目录出发找到正确的可执行文件,就能正常运行。
内容的提问来源于stack exchange,提问作者yeweigen
相关产品推荐
相关产品推荐

