O diretório ext3 / 4 não é uma tabela de hash per se. Na verdade, é uma árvore de hash. Ou seja, o nome do arquivo é hash e o hash é usado como um índice para inserir em uma árvore b +. A maneira mais rápida de excluir todos os arquivos será ordenar os arquivos pelo número do inode, pois isso minimizará as tentativas de disco necessárias para puxar os inodes da tabela de inode para a memória e as atualizações da tabela de inodes conforme os arquivos são desalocados. . Isso também tenderá a excluir os arquivos na ordem em que foram criados, o que otimizará como os vários bitmaps de alocação de bloco e inode precisam ser atualizados. Só mais uma coisa que você pode fazer é ajudar a aumentar o tamanho do diário (remova o diário usando tune2fs e recrie-o com um tamanho de diário maior).
Por fim, você deve ter em mente que um sistema de arquivos não é otimizado para ser um banco de dados. Se você quiser deduzir, realmente deveria considerar o uso de um banco de dados, e não tentar alterá-lo usando um script de shell e usando um diretório como um banco de dados rápido e sujo. Como você descobriu, isso não funciona muito bem ...