find - ls : terminated by signal 13 when using xargs

标签 find xargs

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

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

它工作正常,但有时会抛出损坏的管道错误:

xargs: ls: terminated by signal 13

最佳答案

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

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

这里的要点是,当下面的 head 命令已经获得它想要的所有输入并关闭其输入管道时, xargs 执行的 ls 命令仍在写入输出。因此,忽略它是安全的,但它很丑陋。另请参阅 https://superuser.com/questions/554855/how-can-i-fix-a-broken-pipe-error 中接受的答案

关于find - ls : terminated by signal 13 when using xargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27800726/

相关文章:

bash - 在从 "find | xargs"运行的命令中使用参数扩展来防止输出覆盖

find - Sublime Text : How to jump to file from Find Results using keyboard?

perl - 使用 Perl 查找文件

jquery 在数组中查找图像

linux - 使用 find 和 xargs 使用 rm 删除文件

linux - 使用 sed、awk 和 xargs 切片 3TB 日志文件?

linux - Bash:如何将 'find' 选项保存到变量中

c++ - 在 std::string 中,是否可以在不使用循环的情况下找到一组字符串中的第一个?

bash - 我如何获取 STDIN 并在 bash shell 上使用它来设置环境变量?

emacs find-grep grep