Acho que você está pedindo para excluir arquivos do índice que foram excluídos da árvore de trabalho. O comando git add -u
fará isso, além de adicionar quaisquer alterações na árvore de trabalho (mas não em arquivos novos).
Para fazer mais exatamente o que você pediu, a página git-rm(1)
recomenda o seguinte, que é essencialmente igual à sua solução, mas muito menos frágil.
If all you really want to do is to remove from the index the files that are no longer present in the working tree (perhaps because your working tree is dirty so that you cannot use git commit -a), use the following command:
git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached