首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数列表过长错误rm命令

问参数列表过长错误rm命令
EN

Stack Overflow用户
提问于 2014-01-30 08:12:50
回答 5查看 17.3K关注 0票数 4

我有一个基于Linux的服务器,我使用该服务器进行一些文件管理,并为我的多个其他服务器提供服务。

基本上,该服务器(例如server1)将输入作为来自其他服务器的.mp3文件,并转换为其他文件格式(.wav、.txt和.xml),并将询问的响应发送给其他服务器。

经过一段时间,我的这个文件夹(例如/Somepath/MyInputFolder)现在有了我想要删除的GBs数据。

我尝试了rm -r *命令,但它说:

代码语言:javascript
复制
Argument list too long

我也尝试过rm -r *.mp3和rm -r *.txt分别删除这些文件,但是它会产生同样的错误。

我也尝试过这样做,所以问题并阅读了这个链接。

我试着解决了上述问题,并得到了错误的警告。

代码语言:javascript
复制
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.

我怎样才能做到这一点?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-01-30 08:16:40

正如您所链接的答案的注释中已经指出的,您需要将-maxdepth直接放在路径后面。就像这样:

代码语言:javascript
复制
find . -maxdepth 1 -name "*.txt" -print0 | xargs -0 rm
票数 7
EN

Stack Overflow用户

发布于 2017-06-27 19:46:37

这个问题已经得到了回答,但我想补充一下,因为这些人会遇到这个问题。

find有自己的-delete选项,它将删除它找到的文件。所以你可以简单地做:

代码语言:javascript
复制
find -maxdepth 1 -name "*.txt" -delete

如果你有兴趣阅读更多关于这个问题,我建议此链接。

票数 6
EN

Stack Overflow用户

发布于 2017-04-22 03:35:05

代码语言:javascript
复制
ls | tail -10000 | xargs rm -rf

执行了更多次。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21450961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档