删除大量文件和目录时报错:Argument list too long

简介: 这个目录下的文件数量我惊呆了。40W+ 的文件目录数量,直接报错了。

这个目录下的文件数量我惊呆了。40W+ 的文件目录数量,直接报错了。

ansible]# ls tmp/|wc -l
406278
.ansible]# time rm -rf ./tmp/*
-bash: /bin/rm: Argument list too long
real  0m7.728s
user  0m4.686s
sys 0m0.408s

如何解决呢?通过传参的方式解决 .

.ansible]# time find /home/.ansible/ -name  "a*"  | xargs rm -rf "a*"

如果太多可考虑先删除超过5天的

find /home/.ansible/ -name  "*"  -type f -mtime +5 -exec rm -f {} \;

然而速度是真的慢,如何快速删除呢?

使用rysnc

rsync --delete -v -d /home/.ansible/tmp_1/ /home/.ansible/tmp/

  • /home/.ansible/tmp_1/  空文件夹
  • /home/.ansible/tmp/  需要删除的文件夹

这种删除方式应该是最快的一种方式.

1. .ansible]# du -sh *
2. 4.0K deltmp.yml
3. 17M  tmp
4. 4.0K tmp_1

参考: Linux下删除大量文件效率对比


目录
相关文章
|
Java
java读取本地目录的文件转换为list
java读取本地目录的文件转换为list
137 0
|
存储
File操作 - list()/listFiles()与目录过滤器
File操作 - list()/listFiles()与目录过滤器
134 0
|
6月前
|
缓存 资源调度 DataWorks
DataWorks操作报错合集之DataWorks节点报错:OSError: [Errno 7] Argument list too long,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
100 1
|
5月前
|
分布式计算 DataWorks 监控
DataWorks操作报错合集之遇到“OSERROR: argument list too long”的错误,该如何处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
62 1
|
5月前
|
Java API
将`List<String>`转换为`List<Long>`
将`List<String>`转换为`List<Long>`
|
6月前
四种解决”Arg list too long”参数列表过长的办法
这些方法都可以帮助你避免因参数列表过长而导致的错误。选择方法取决于具体情况和需求。
248 0
|
6月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
545 0
|
6月前
|
编译器 C语言
c语言中long的作用类型
c语言中long的作用类型
167 0
|
18天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
27 3
|
17天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
33 1

热门文章

最新文章