strace
ou similar mostrará as chamadas do sistema usadas por sponge
, o que provavelmente é para write(2)
a entrada read(2)
da entrada padrão para um arquivo temporário e, em seguida, para rename(2)
esse arquivo temporário para o nome do arquivo de saída desejado quando a entrada terminar. A entrada termina quando uma chamada read(2)
falha ou retorna 0
(que indica o fim do arquivo), ponto no qual sponge
pode fazer a renomeação.