我有一个目录,其中包含数百万个小文件(来自大数据程序的输出)。我需要删除这些目录,但是当我输入标准时,rm *我得到:
zsh: sure you want to delete more than 100 files in data/output [yn]? y
zsh: argument list too long: rm
Run Code Online (Sandbox Code Playgroud)
这些文件都具有相同的前缀,并像这样在后面附加一个唯一的数字
data-12343
data-12344
... etc
Run Code Online (Sandbox Code Playgroud)
所以我什至不能使用正则表达式以零碎的方式垃圾文件。寻求有关如何以自动化方式高效执行此操作的建议和技巧。
谢谢。
使用xargs运行你的rm命令。它将重新运行rm,每次用完最大数量的参数,直到完成您的初衷*。
用手册页的话来说:
命令的命令行会一直建立,直到达到系统定义的限制(除非使用 -n 和 -L 选项)。将根据需要多次调用指定的命令以用完输入项列表。一般而言,命令调用次数将比输入中的项目少得多。这通常会带来显着的性能优势。一些命令也可以并行执行;请参阅 -P 选项。