ls:使用xargs时被信号13终止 [英] ls: terminated by signal 13 when using xargs

查看:1202
本文介绍了ls:使用xargs时被信号13终止的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下命令删除文件夹中的四个最大大小的文件:

I'm using the following command to delete four largest size files in a folder:

find "/var/www/site1/" -maxdepth 1 -type f | xargs ls -1S | head -n 4 | xargs -d '\n' rm -f

它工作正常,但有时会抛出管道破裂错误:

It works fine, but from time to time throws broken pipe error:

xargs: ls: terminated by signal 13

推荐答案

我遇到了类似的问题,并在搜索答案时发现了该线程:

I ran across a similar issue and found this thread on search for an answer:

信号13表示将某些内容写入管道,不再读取任何内容(例如,参见 http://people.cs.pitt.edu/~alanjawi/cs449/code/shell/UnixSignals.htm ).

Signal 13 means something is written to a pipe where nothing is read from anymore (e.g. see http://people.cs.pitt.edu/~alanjawi/cs449/code/shell/UnixSignals.htm ).

这里的要点是,当以下head命令已经获得了所需的所有输入并关闭了输入管道时,由xargs执行的ls命令仍在写入输出.因此可以忽略不计,但是很丑陋.另请参见 https://superuser.com/questions/554855/如何解决管道破裂错误

The point here is that the ls command as executed by xargs is still writing output when the following head command already got all the input it wants and closed its input-pipe. Thus it's safe to ignore, yet it's ugly. See also the accepted answer in https://superuser.com/questions/554855/how-can-i-fix-a-broken-pipe-error

这篇关于ls:使用xargs时被信号13终止的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆