如何使用.directories清空目录

时间:2010-10-06 18:10:58

标签: ruby

在Ruby 1.8中,如何删除一些目录树,其中一些子目录以'。'开头?

例如,我有一个我想清理的嵌入式Linux文件系统目录。其子目录之一是./dev/.udev/files。

Dir[ "{**/*,**/.**,**/.*}" ].sort.reverse.each do | p |
    puts p
    if ( ( p != '..' ) and ( p != '.' ) ) then
        if File.directory? p then
            Dir.rmdir p
        else
            File.delete p 
        end
    end
end

这可以识别./dev/.udev/,但它不会删除.udev下的文件(或文件和目录)。

我意识到我可能是残酷的并且执行

system("rm -Rf *")

来自工作目录,但我想更好地理解globbing方法。

提前致谢! :d

1 个答案:

答案 0 :(得分:0)

你可以尝试

Dir.glob(".[^.]*")

要删除目录,您可以先尝试删除目录中的所有文件,然后执行删除操作,也可以使用FileUtils.rm_rf。有关详细信息,请参阅FileUtils doc