【发布时间】:2016-08-10 04:24:31
【问题描述】:
我有一个可执行文件放置在我的 Linux 机器上,因此可执行文件的路径长度为 107 个字符。我使用命令echo -n "/path/to/the/executable" | wc -c -m 找到了字符数。当我尝试使用完整路径执行可执行文件时,出现以下错误:
sh: 1: /subpath/to/the/executable: not found
我检查了/subpath/to/the/executable 的长度,它是 81 个字符。如果我放置我的可执行文件,使其路径长度小于 81 个字符,我不会得到上面的sh error。
我做了一些搜索,发现 Linux env 上的文件路径限制为 255 个字符。我找不到 dash 或 shell 是否对文件路径有任何限制。在我的机器上 /bin/sh 是 /bin/dash 的符号链接。
有人可以解释破折号强制执行的文件路径上 81 个字符的限制吗?有没有办法提高限额?
【问题讨论】:
-
/subpath/存在且正确吗?它是什么,/(根)或子文件夹中的文件夹? (为什么你把它称为完整路径呢?) -
我怀疑所涉及的实际路径比它们的长度更相关。
-
@OleksandrKravchuk,
/subpath/不存在。它是/path/to/the/executable的前81 个字符。可执行文件放置在各种目录中,我可以更改当前目录并以./file执行文件,但我是从java代码执行它,所以我需要提供完整路径。 -
我没有特别怀疑什么;我只是不认为您认为 81 是魔术长度的假设是正确的。产生错误的实际代码是什么?
-
显示你是如何执行脚本的。是用
sh /subpath/to/the/executable,还是在开头使用#!行?
标签: linux shell dash-shell