2011-12-16 17 views

risposta

131

Ruby ha il * nix rm -rf equivalente nel modulo FileUtils che è possibile utilizzare per eliminare entrambi i file e le cartelle non vuote/directory:

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

Per mantenere la directory stessa e rimuovere solo il suo contenuto:

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

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

Questo eliminerebbe la cartella stessa, come pure - c'è comunque di avere esso rimuovere solo il contenuto di tale cartella , ma mantieni la cartella vuota? – Jacob

+0

Trovato. 'FileUtils.mkdir'. Grazie – Jacob

+17

Solo per il contenuto della cartella: FileUtils.rm_rf (Dir.glob ('dir/*')) (si prega di notare l'asterisco alla fine) – draganstankovic

2

È possibile eseguire comandi arbitrari con il singolo-citazione inclinato (accanto alla tilde) in questo modo:

`rm -fr public/cache/*` 

Questo può essere più dipendente dalla piattaforma di quello che vuoi, ma apre molte possibilità.

+7

Questo è chiamato backtick. – IIllIIll

0

Ottime risposte qui già. Si potrebbe anche essere interessati a sapere che Rails 5 ha un compito rastrello per fare questo built-in:

rake tmp:cache:clear # Clear cache files from tmp/ 
Problemi correlati