发布网友 发布时间: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
把时间调大一点可以慢慢删