从目录中删除数百万个文件的命令

从目录中删除数百万个文件的命令

我的目录包含数百万个小文件(从大数据程序输出)。我需要删除这些目录,但是当我输入标准时,rm *我得到:

zsh: sure you want to delete more than 100 files in data/output [yn]? y
zsh: argument list too long: rm

这些文件都具有相同的前缀,并在后面附加一个唯一的编号,如下所示

data-12343
data-12344
... etc

所以我什至不能使用正则表达式来零敲碎打地丢弃这些文件。寻找有关如何高效、自动化地完成此操作的建议和技巧。

谢谢。

答案1

用于xargs运行您的rm命令。它会重新运行rm,每次都会用完最大数量的参数,直到完成你的初衷*

用手册页的话来说:

命令的命令行会一直构建,直到达到系统定义的限制(除非使用 -n 和 -L 选项)。将根据需要多次调用指定的命令以用完输入项列表。一般来说,命令的调用次数会比输入中的项目少得多。这通常会带来显着的性能优势。有些命令也可以有效地并行执行;请参阅 -P 选项。

相关内容