O Linux (como outros unices) nativamente fornece um recurso de desfazer. A filosofia é que, se tiver desaparecido, desaparecerá. Se fosse importante, deveria ter sido feito backup.
Existe um sistema de arquivos com fusíveis que automaticamente mantém cópias de versões antigas: copyfs , disponível em todas as boas distribuições. Claro, isso pode usar muitos recursos.
A melhor maneira de proteger contra tais acidentes é usar um sistema de controle de versão (cvs, bazar, darcs, git, mercurial, subversion, ...). Demora um pouco para aprender, mas vale a pena a médio e longo prazo.