ls -l |头提示`ls:写入错误:使用Jupyter Notebook提供的终端包含太多文件的目录出现管道破损

问题描述 投票:0回答:1

我在包含太多文件的目录中运行ls: write error: Broken pipe时遇到了ls -l | head。运行ls | head时没有遇到该问题。我只是想知道为什么-l选项会导致该问题。我也想知道如何解决该问题,但是仍然要打印文件的长信息。

要重现我的问题,您可以先在Jupyter Notebook提供的终端机]中打开一个,

enter image description here

然后运行以下代码。

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选项会...

bash shell jupyter-notebook
1个回答
0
投票

Python(至少是python2的较早版本)doesn't reset SIGPIPE handling for subprocesses

这意味着它启动的任何命令(例如,您在Jupyter笔记本中启动的命令)都将忽略SIGPIPE,就像发出了trap '' PIPE一样。

© www.soinside.com 2019 - 2024. All rights reserved.