我有一个基于Linux的服务器,我使用该服务器进行一些文件管理,并为我的多个其他服务器提供服务。
基本上,该服务器(例如server1)将输入作为来自其他服务器的.mp3文件,并转换为其他文件格式(.wav、.txt和.xml),并将询问的响应发送给其他服务器。
经过一段时间,我的这个文件夹(例如/Somepath/MyInputFolder)现在有了我想要删除的GBs数据。
我尝试了rm -r *命令,但它说:
Argument list too long我也尝试过rm -r *.mp3和rm -r *.txt分别删除这些文件,但是它会产生同样的错误。
我试着解决了上述问题,并得到了错误的警告。
find . -name "*.txt" -maxdepth 1 -print0 | xargs -0 rm
find: warning: you have specified the -maxdepth option after a non-option argument -name, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.我怎样才能做到这一点?
发布于 2014-01-30 08:16:40
正如您所链接的答案的注释中已经指出的,您需要将-maxdepth直接放在路径后面。就像这样:
find . -maxdepth 1 -name "*.txt" -print0 | xargs -0 rm发布于 2017-06-27 19:46:37
这个问题已经得到了回答,但我想补充一下,因为这些人会遇到这个问题。
find有自己的-delete选项,它将删除它找到的文件。所以你可以简单地做:
find -maxdepth 1 -name "*.txt" -delete如果你有兴趣阅读更多关于这个问题,我建议此链接。
发布于 2017-04-22 03:35:05
ls | tail -10000 | xargs rm -rf执行了更多次。
https://stackoverflow.com/questions/21450961
复制相似问题