【发布时间】:2015-06-02 19:02:10
【问题描述】:
我想删除目录中的数百万个文件,并且页面提到以下 Perl 代码是最快的:
perl -e 'chdir "BADnew" or die; opendir D, "."; while ($n = readdir D) { unlink $n }`
但是,是否也可以仅对包含“排序”一词的文件执行此操作?有谁知道如何重写这个?
【问题讨论】:
-
单线的魅力是什么?您可以通过删除换行符将几乎任何脚本转换为一行,但代码的可读性比一行代码更重要。
-
rm BADnew/*sorted*不起作用的任何原因? -
您需要将
unlink $n替换为对打开文件的函数的调用,查找您要查找的字符串 (sorted),关闭文件,然后调用 @987654325 @如果找到了这个词。不是很难;试试吧! -
@PaulRoub:两个原因:有几百万个文件,所以参数列表会太长,因为文件包含
sorted,而不是文件名。 -
您是指内容包含单词sorted的文件还是名称包含单词sorted的文件?