相关疑难解决方法(0)

rm,cp,mv命令的参数列表太长错误

我在UNIX的目录下有几百个PDF.PDF的名称非常长(大约60个字符).

当我尝试使用以下命令一起删除所有PDF时:

rm -f *.pdf
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

/bin/rm: cannot execute [Argument list too long]
Run Code Online (Sandbox Code Playgroud)

这个错误的解决方案是什么?这个错误是否也出现在命令mvcp命令中?如果是,如何解决这些命令?

unix linux command-line-arguments

584
推荐指数
13
解决办法
53万
查看次数

如何在Go中管理几个命令?

如何在Go中将多个外部命令一起管道?我试过这段代码,但是我收到一条错误exit status 1.

package main

import (
    "io"
    "log"
    "os"
    "os/exec"
)

func main() {
    c1 := exec.Command("ls")
    stdout1, err := c1.StdoutPipe()
    if err != nil {
        log.Fatal(err)
    }

    if err = c1.Start(); err != nil {
        log.Fatal(err)
    }
    if err = c1.Wait(); err != nil {
        log.Fatal(err)
    }

    c2 := exec.Command("wc", "-l")
    c2.Stdin = stdout1

    stdout2, err := c2.StdoutPipe()
    if err != nil {
        log.Fatal(err)
    }

    if err = c2.Start(); err != nil {
        log.Fatal(err)
    }
    if …
Run Code Online (Sandbox Code Playgroud)

pipe go

61
推荐指数
5
解决办法
3万
查看次数

"参数列表太长"限制是否适用于shell内置函数?

我浏览了Stack Overflow上的很多帖子以及关于这个argument list too long主题的一些相关社区,我似乎没有清楚地知道长度限制是否适用于shell内置函数.

假设我想通过标准输入将一个非常长的字符串传递给命令:

string="a very long list of words ..."
Run Code Online (Sandbox Code Playgroud)

我能说......么:

# not using double quotes around $string is deliberate
printf '%s\n' $string | cmd ...
Run Code Online (Sandbox Code Playgroud)

要么

cmd <<< $string
Run Code Online (Sandbox Code Playgroud)

甚至可以将它传递给xargs:

printf '%s\n' $string | xargs cmd ...
Run Code Online (Sandbox Code Playgroud)

有人可以澄清一下吗?

unix linux bash shell command-line-arguments

7
推荐指数
1
解决办法
1411
查看次数

电子邮件大量文本:"参数列表太长"

我的问题是通过gmail在电子邮件中发送大量文本.

我正在开发一个简单的应用程序,它需要能够执行HTTP GET请求,并使用gmail帐户将收到的HTML作为文本发送.我相信我正在使用SSMTTP通过gmail发送文本,我使用perl LWP::UserAgent来执行GET请求.当我执行我的perl代码时,由于发送了大量文本,我收到以下错误:

不能执行"/ bin/sh":参数列表太长

我的互联网搜索找到了这些来源:

这让我更好地理解了约束,但由于以下原因,它并没有真正解决我的问题:

  • 我无法重新编译内核
  • 我不能使用find或我自己的bash功能等将其"分解成小块" .

我试图让这个按照大量文本的要求工作.

这是我的perl代码的摘录:

    # Uses ssmtp to send an email
    sub sendEmail{

     my ($destination, $subject, $body) = @_;

     #say $destination; say $subject;say $body;

     # Create the bash command
     my $command="echo \'$body\' | mail -s \'$subject\' $destination";

     say "\nExecuting shell command: $command";
     my $output = qx($command);
    }
Run Code Online (Sandbox Code Playgroud)

请不要试图说服我不应该发送带有HTML文本的电子邮件.这就是我被要求做的事情,所以我试图按要求做.

编辑: 感谢您的评论和帮助.这是一个很大的帮助.我正在轻松进入bash和perl脚本编写,所以如果这是一个过于无知的问题我会道歉,但希望这些答案有助于像我这样的未来新手.对于downvotes,评论解释真的很感激.谢谢!

linux bash shell perl

-1
推荐指数
1
解决办法
328
查看次数

标签 统计

linux ×3

bash ×2

command-line-arguments ×2

shell ×2

unix ×2

go ×1

perl ×1

pipe ×1