Perguntei-me a mesma pergunta há algum tempo e simplesmente fiz o seguinte:
Escrevi com o shell algumas vezes uma string bastante incomum em um arquivo (algo como "WackaWacka"). Então, simplesmente procurava com um dump hexadecimal (usado od ) o conteúdo real do disco e verificado se a primeira ocorrência da string foi armazenada exatamente no começo de um bloco de 4k.
Dica: não use um editor - ele pode criar arquivos temporários que você não conhece e que também podem conter strings. Faça assim:
$ for i in 1 2 3 4 5 ...
> do
> echo "WackaWacka!"
> done > mytestfile
Então .sh_history pode conter a string de pesquisa, mas não 5 vezes seguidas; -)
E então, basta pesquisar:
# sync
# od -c /dev/sda | grep 'W a c k a'
Bem, é melhor que seja feito em um disco vazio para evitar serging através de Gigabytes de dados; -)