2011-12-16 14 views

Odpowiedz

131

Ruby ma * nix rm -rf równoważnym w module FileUtils, które można wykorzystać, aby usunąć oba pliki i niepuste foldery/katalogi:

FileUtils.rm_rf('dir/to/remove') 

Aby zachować katalog siebie i tylko usunąć jego zawartość:

FileUtils.rm_rf(Dir.glob('dir/to/remove/*')) 

FileUtils.rm_rf(Dir['dir/to/remove/*'])  # shorter version of above 
+0

Usunąłoby to również sam folder - czy mimo to usuwa zawartość tego folderu , ale zachować pusty folder? – Jacob

+0

Znaleziono go .. 'FileUtils.mkdir'. Dzięki – Jacob

+17

Tylko dla zawartości folderów: FileUtils.rm_rf (Dir.glob ('dir/*')) (zwróć uwagę na gwiazdkę na końcu) – draganstankovic

2

można uruchomić dowolnych poleceń za pomocą przechylony apostrofu (obok tyldy) tak:

`rm -fr public/cache/*` 

Może to być bardziej zależne od platformy niż to, co chcesz, ale otwiera wiele możliwości.

+7

To się nazywa backtick. – IIllIIll

0

Świetne odpowiedzi już tutaj. Być może zainteresuje cię również to, że Rails 5 ma wbudowaną funkcję rake:

rake tmp:cache:clear # Clear cache files from tmp/ 
Powiązane problemy