Moreutils contiene una raccolta di strumenti per gli utenti che usano la riga di comando. Scritto da molti autori, questi strumenti sono modesti e, forse, troppo limitati per esistere in un pacchetto autonomo, ma tutti insieme formano un utilissimo accompagnamento per tutti gli altri programmi da riga di comando.
Sponge - Ammorbidire i 'file redirect'
Molti utenti della riga di comando hanno sicuramente fatto un errore come il seguente:
$ grep -v someuser /etc/passwd > /etc/passwd
Appena il comando viene eseguito, questo cancellerà il file di destinazione per poi eseguire, in seguito, il comando 'grep'. Il risultato finale è un file vuoto - certamente diverso dal risultato aspettato! Dopo aver imparato dai propri errori, l'utente potrebbe effettuare il reindirizzamento dell'output verso un file temporaneo, per poi spostarlo al posto del file originale
$ grep -v someuser /etc/passwd > /etc/passwd.tmp
$ mv /etc/passwd.tmp /etc/passwd
Sponge è un semplice, ma utile, comando che esiste per ridurre questo processo in un solo passaggio:
$ grep -v someuser /etc/passwd | sponge /etc/passwd
Sponge 'assorbe' quanto passato dallo standard input, aspettando il completamento del primo processo prima di scrivere nel file specificato. In questo modo il risultato è quello atteso, e senza bisogno di appoggiarsi ad un file temporaneo .