Как очистить каталог с помощью .directories - PullRequest
0 голосов
/ 06 октября 2010

В 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 *")

из рабочего каталога, но я хотел бы лучше понять методику сгущения.

Спасибо зазаранее!: D

1 Ответ

0 голосов
/ 07 октября 2010

Вы можете попробовать

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

Для удаления каталога вы можете сначала попытаться удалить все файлы внутри каталога, затем выполнить удаление, или вы можете использовать FileUtils.rm_rf. См. FileUtils документ для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...