标签: yes

“是”如何如此快速地写入文件?

让我举个例子吧:

$ timeout 1 yes "GNU" > file1
$ wc -l file1
11504640 file1
Run Code Online (Sandbox Code Playgroud)

$ for ((sec0=`date +%S`;sec<=$(($sec0+5));sec=`date +%S`)); do echo "GNU" >> file2; done
$ wc -l file2
1953 file2
Run Code Online (Sandbox Code Playgroud)

在这里您可以看到该命令在一秒钟内yes写入11504640行,而我只能1953在 5 秒内使用 bashforecho.

正如评论中所建议的,有各种技巧可以提高效率,但没有一个能与以下速度相媲美yes

$ ( while :; do echo "GNU" >> file3; done) & pid=$! ; sleep 1 ; kill $pid
[1] 3054
$ wc -l file3
19596 file3
Run Code Online (Sandbox Code Playgroud)

$ timeout 1 bash -c 'while …
Run Code Online (Sandbox Code Playgroud)

bash coreutils write yes

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

“是”命令的意义是什么?

yes在 unix/linux 中有一个命令,它基本上无限地打印ystdout. 它有什么意义,它有什么用?

command yes

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

为什么“yes&amp;”会使我的 Bash 会话崩溃?

“是的,而且……”是即兴喜剧中的一个很棒的经验法则。在 UNIX 世界中则不然。

当我运行这个公认的愚蠢yes&命令时,我无法中断它。终端崩溃或陷入循环。

我希望该yes进程立即暂停,因为如果尝试写入标准输出,后台的任何进程都应该暂停,但情况似乎并非如此,我想知道为什么。

bash job-control jobs background-process yes

28
推荐指数
2
解决办法
5549
查看次数

将千兆字节的数据写入管道时会发生什么?

假设我有一个名为 的makefile,hour_long_recipe顾名思义,它需要一个小时才能运行。在整个食谱的随机点上,它会问是/否问题。假设它总共问了 10 个问题。

一种可能(并且经常被推荐)的运行方式是:

yes | make hour_long_recipe
Run Code Online (Sandbox Code Playgroud)

用 回答所有问题y。但是,根据我的理解,无论是否实际使用来自其标准输入的数据,都会yes高达每秒 10.2 GiB 的速度输出到标准输出make

即使它只有 10 MiB/s(比任何yes可以相信的 reddit 线程的实现都慢得多),在一小时内它会加起来超过 35 GiB,其中只有 20 个字节将被读取。数据去哪儿了?可以将其保存到磁盘,但这很浪费,如果磁盘填满的速度足够快,它甚至可能导致make失败。

据推测,操作系统会阻止它到达那个状态,但是如何呢?什么是限制,达到该限制时会发生什么?

linux pipe yes

18
推荐指数
1
解决办法
1731
查看次数

在bash中使用“sudo”调用时,如何将“yes”或“y”输入到程序中?

调用时如何通过管道将 aYyes传递到程序sudo

我们可以这样输入

yes | command
yes | yum update
Run Code Online (Sandbox Code Playgroud)

如何通过如下方式将yfrom管道yes传输到程序中sudo

yes| sudo command
Run Code Online (Sandbox Code Playgroud)

yyesIS传递到command,应该进入sudo,并sudo应索要密码正常。我怎样才能做到这一点?

pipe sudo yes

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

是 | apt-get install --fix-broken

我正在尝试编写一个非交互式系统更新脚本。

题:

如果以下工作正常:

yes | dpkg --configure -a
Run Code Online (Sandbox Code Playgroud)

以下工作也会很好吗?:

yes | apt-get install --fix-broken
Run Code Online (Sandbox Code Playgroud)

dpkg apt yes

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

你能从意外的“yes”命令中拯救 shell 吗?

场景:我正在运行一堆命令,其中一些命令提示输入“是/否”答案。我不小心键入了yes命令而不是对提示的响应。哎呀。现在我的外壳看起来像这样:

$ yum install -y something-important
... useful output I want to go back and refer to, perhaps multiple times
$ yes
y
y
y
y
y
y
y
y
y
y
y
... there are tens of thousands of lines... oh god, Y??
Run Code Online (Sandbox Code Playgroud)

在意识到发生了什么后,我成功地停止了yes命令,但损害已经造成了。我当时正处于紧张的 shell 会话中,现在我失去了向上滚动以获得相关输出的能力!显然以前的文本仍然存在,但它基本上无法访问,因为它与所有y. 类似的东西clear将有助于y从我的屏幕上删除难看的种子,但它不会帮助我回到之前的会话状态。

如何挽救本次会话之前的输出以使其仍然有用?

shell session scrolling yes

3
推荐指数
1
解决办法
830
查看次数

标签 统计

yes ×7

bash ×2

pipe ×2

apt ×1

background-process ×1

command ×1

coreutils ×1

dpkg ×1

job-control ×1

jobs ×1

linux ×1

scrolling ×1

session ×1

shell ×1

sudo ×1

write ×1