linux命令中由于文件数过多find . -mtime +10|xargs rm -rf命令不起作用

发布网友 发布时间:2022-04-23 08:52

我来回答

4个回答

热心网友 时间:2023-10-08 22:57

被xargs 调用的命令行是有长度*的(根系统、配置有管),你的命令在文件非常多的情况下,可能导致超过这个*,从而无法正确运行,有多种解决方法:

1。 直接使用 find 命令来删除文件,如
find . -mtime +10 -exec rm -rf {} \;
强烈建议直接使用这个方法

2. 如果一定要用 xargs, 可以用下面的方法来让 xargs 每次只对一个文件调用 rm

find . -mtime +10 | xargs -L 1 rm -rf

热心网友 时间:2023-10-08 22:57

其实我看不出有什么问题...好吧,我是初学者
要不你试试这个 find . -type f -mtime +10 -exec rm -rf {} \
其实我觉得如果你那样删除没什么用的话,这样也不行的,不过还是试试吧追问文件中文件数过大,删除不了,难道传说中的linux这么稳定强大,负载能力那么强还不能删除这些过期文件吗?

热心网友 时间:2023-10-08 22:58

你查找到的文件名内有空格或换行之类的字符?
试试:
find . -mtime +10 -print0 | xargs -0 rm -rf追问就是删除过去的文件,文件名没有空格,我举例的那个命令可以用,只不过文件数过多的时候就失效了

热心网友 时间:2023-10-08 22:58

把时间调大一点可以慢慢删

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com