要获取目录中X个文件,我可以执行以下操作:
$ ls -U | head -40000
我该如何删除这40,000个文件?例如,类似:
$ "rm -rf" (ls -U | head -40000)
为此所需的工具是xargs
。它将标准输入转换为您指定命令的参数。输入的每一行都被视为单个参数。
因此,类似的事情会起作用(不过,ls
不应正常地以这种方式解析下面的评论):
ls -U | head -40000 | xargs rm -rf
我建议您先尝试从小head
尺寸开始,然后使用xargs echo
它打印出传递的文件名,以便您了解要删除的内容。
请注意,如果您的文件带有奇怪的字符,则有时可能会出现问题。如果您使用的是现代GNU系统,则还可能希望使用这些命令的参数,这些参数使用空字符分隔每个元素。由于文件名不能包含可安全解析所有可能名称的空字符。我不知道X
当顶级项目零分隔时采用的简单方法。
因此,例如,您可以使用它来删除目录中的所有文件
find . -maxdepth 1 -print0 | xargs -0 rm -rf
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句