【问题标题】:-bash: /bin/ls: Argument list too long if there is a lot of PATH [closed]-bash:/bin/ls:如果路径很多,参数列表太长[关闭]
【发布时间】:2019-04-04 03:40:55
【问题描述】:

我在 PATH 变量中设置了大约两千条路径(我知道它过多,但我进行了一些实验),每当我尝试运行任何命令时,都会出现以下错误,在本例中为 ls

-bash: /bin/ls: Argument list too long

我已经检查了有关错误消息的几个主题。但是,我想知道 PATH var length 与 arg list 错误有什么关系。

有人有想法/解释吗?

谢谢!

【问题讨论】:

  • 听起来PATH 变量将您的环境大小推到了系统上的ARG_MAX 之上,或者在Linux 的情况下,请参阅psomas.wordpress.com/2011/07/15/arg_max-and-the-linux-kernel
  • 环境本质上是第二个参数列表,按照惯例只解释为键/值对。 Linux 称之为arg+env limit
  • 非常感谢您的帖子,包括下面的帖子,现在更有意义了。深入了解您提供的链接。

标签: linux bash shell linux-kernel environment-variables


【解决方案1】:

相同的缓冲区用于将命令行参数和环境传递给新进程。在这种情况下,PATH 的值似乎足以让环境超过操作系统对该缓冲区大小的任何限制。因此,即使是零参数列表也太长了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 2021-03-28
    • 2020-05-08
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2015-04-27
    相关资源
    最近更新 更多