[英]Delete hidden files in Ruby
有谁知道如何用Ruby删除目录中的所有文件。 当没有隐藏文件,但是有隐藏文件(即.svn文件)时,我的脚本运行良好,我无法删除它们,并且Ruby引发Errno :: ENOTEMPTY错误。 我怎么做 ?
.svn不是文件,而是目录。
在FileUtils中检出remove_dir 。
如果您特别想摆脱svn文件,请使用以下脚本来执行此操作,而不会损害其余文件:
require 'fileutils'
directories = Dir.glob(File.join('**','.svn'))
directories.each do |dir|
FileUtils.rm_rf dir
end
只需在基本svn目录中运行脚本即可,仅此而已(如果您使用asp.net hack在Windows上,只需将.svn更改为_svn)即可。
无论如何,请查找Dir.glob。 它应该可以帮助您完成任务。
.svn是隐藏的,这可能与事实无关。 该错误提示您正在尝试删除一个非空目录。 您需要先删除目录中的所有文件,然后才能删除目录。
是的,您可以使用FileUtils.remove_dir path
删除(隐藏)目录。
我碰巧只是写一个脚本来递归删除目录中的所有.svn文件。 希望能帮助到你。
#!/usr/bin/ruby
require 'fileutils'
def svnC dir
d = Dir.new(dir)
d.each do |f|
next if f.eql?(".") or f.eql?("..")
#if f is directory , call svnC on it
path = dir + "/" + "#{f}"
if File.stat(path).directory?
if f.eql?(".svn")
FileUtils.remove_dir path
else
svnC path
end
end
end
end
svnC FileUtils.pwd
正如@evan所说的,你可以做
require 'fileutils'
Dir.glob('**/.svn').each {|dir| FileUtils.rm_rf(dir) }
或者您可以将其设置为一个衬板,然后从命令行执行它
ruby -e "require 'fileutils'; Dir.glob('**/.svn').each {|dir| FileUtils.rm_rf(dir) }"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.