要获取目录中的 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)