我使用以下命令删除文件夹中四个最大的文件:
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/