Ruby 如何用.directories清空目录
在Ruby 1.8中,如何删除一些子目录以“.”开头的目录树 例如,我有一个嵌入式Linux文件系统目录,我想清除它。它的一个子目录是./dev/.udev/filesRuby 如何用.directories清空目录,ruby,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.r
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方法
提前谢谢!:你可以试试
Dir.glob(".[^.]*")
要删除目录,可以先尝试删除目录中的所有文件,然后执行删除操作,或者可以使用
FileUtils.rm\u rf
。有关更多信息,请参见FileUtils
docDir[].sort.reverse的目的是先列出最深的文件,然后再列出它们所在的目录。除了glob模式**和*不接受以开头的文件或目录之外,它工作得非常好;这比系统()更干净:D