I have a public/cache
folder which has files and folders. How can I completely empty that folder using a rake task?
Great answers here already. You might also be interested to know that Rails 5 has a rake task to do this built-in:
rake tmp:cache:clear # Clear cache files from tmp/
You can run arbitrary commands using backticks like so:
`rm -fr public/cache/*`
This may be more platform-dependent than what you want, but it opens up a lot of possibilities.
Ruby has the *nix rm -rf
equivalent in the FileUtils module that you can use to delete both files and non-empty folders/directories:
FileUtils.rm_rf('dir/to/remove')
To keep the directory itself and only remove its contents:
FileUtils.rm_rf(Dir.glob('dir/to/remove/*'))
FileUtils.rm_rf(Dir['dir/to/remove/*']) # shorter version of above