在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
答案 0 :(得分:0)
你可以尝试
Dir.glob(".[^.]*")
要删除目录,您可以先尝试删除目录中的所有文件,然后执行删除操作,也可以使用FileUtils.rm_rf
。有关详细信息,请参阅FileUtils
doc