我在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)
这个错误的解决方案是什么?这个错误是否也出现在命令mv和cp命令中?如果是,如何解决这些命令?
如何在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) 我浏览了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)
有人可以澄清一下吗?
我的问题是通过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,评论解释真的很感激.谢谢!