我在包含太多文件的目录中运行ls: write error: Broken pipe
时遇到了ls -l | head
。运行ls | head
时没有遇到该问题。我只是想知道为什么-l
选项会导致该问题。我也想知道如何解决该问题,但是仍然要打印文件的长信息。
要重现我的问题,您可以先在Jupyter Notebook提供的终端机]中打开一个,
然后运行以下代码。
cd mkdir test cd test for i in {1..200}; do touch $i; done ls -l | head
输出如下。
total 0 -rw-rw-r-- 1 s1855106 s1855106 0 Apr 14 10:14 1 -rw-rw-r-- 1 s1855106 s1855106 0 Apr 14 10:14 10 -rw-rw-r-- 1 s1855106 s1855106 0 Apr 14 10:14 100 -rw-rw-r-- 1 s1855106 s1855106 0 Apr 14 10:14 101 -rw-rw-r-- 1 s1855106 s1855106 0 Apr 14 10:14 102 -rw-rw-r-- 1 s1855106 s1855106 0 Apr 14 10:14 103 -rw-rw-r-- 1 s1855106 s1855106 0 Apr 14 10:14 104 -rw-rw-r-- 1 s1855106 s1855106 0 Apr 14 10:14 105 -rw-rw-r-- 1 s1855106 s1855106 0 Apr 14 10:14 106 ls: write error: Broken pipe
我遇到ls:写入错误:运行ls -l时管道破损|放在包含太多文件的目录中。我在运行ls时没有遇到这个问题。头。我只是想知道为什么-l选项会...
Python(至少是python2的较早版本)doesn't reset SIGPIPE handling for subprocesses
这意味着它启动的任何命令(例如,您在Jupyter笔记本中启动的命令)都将忽略SIGPIPE
,就像发出了trap '' PIPE
一样。