Histórico de bash corrompido após perda de energia

1

Eu fui para a loja e quando voltei, descobri que tinha esquecido de ligar meu laptop e ele tinha morrido de uma bateria fraca. Quando eu reiniciei, fiquei surpreso ao descobrir que meu histórico bash, em vez de conter meus comandos de terminal, agora se parecia com isso:

don@don-Dell-PowerbookBook-777w:~$ �$6:�P!^G����^^B)A|E1����t^E���@=(�|0H�^N�s����+�����C�Ώ)p��s�  pn�ǡ!�ǝ\��"^H�n^M^Rs��$u�^[���^S����![�0^R&^R���@��T���v��8^T^N��^ZJ�O�*�Y$:�A�^[6��jٸ�EIl>��^L�ژ���^^^Xw^T^[��/^Q^Aw       ߨ~�>���s"�6d��^\�U%�a^M/p^P��iޠ��\^M^Z^9��^_l�]*�Ų���J͜��^UK�u�  ����N^S���^G5^B^D�p^^^E��4�&�Qi�^U^?�T^T��- 

E quando eu corri gedit .bash_history , eu entendi:

Ocorreu um problema ao abrir o arquivo "/home/dave/.bash_history".

O arquivo que você abriu tem alguns caracteres inválidos. Se você continuar editando este arquivo, poderá corromper este documento. Você também pode escolher outra codificação de caracteres e tentar novamente.

Codificação de caracteres: localidade atual (UTF-8)

e depois:

\D3Q\F6ڵB\A8aB\C7׬\A2\B5\F7\B0,.\B4\FD\E4N\A9͈\FEK\EF蓪*,q\D5HbI\C6!iB\BC\D33\A7\C5\EC\E3\AE|\D1<%Hx9a\FEI\BEf\C1\AF\B7Ed,6DI<\B5\F9*twr^D,QB2\C1A;lDb@C*$\D4=\B7vۉ\B5\D0g\C0{Cb\EA;\ACKq\FE\BA\B7\C0\DF\DB]PZ\AE\EB\D2\A1eC\D4\F8\B4'A\CD%code%F-\CBs\FD;k\CBUv\E1\F8߱y\D0;\BBE ůLteEB\D1%code%\E7\CF)\E51,C}\E6=\C7l\D8v.#s\CE\D5\C2%2EZ<\DD'oIKl.\CC81~\DC\F9\A5ȡ@6\E0\DA\F8j%\D2;: b(\BE\F5Dv\CD"\A0vCc\EC\A2\F8oP\CEG\ED~y6\B9\AF\BF\BF\DC}F\CF\DB\C9\D6\DC\D9\E7\E4\DC-H\B3\A7\F3\DF\EBDS+\E5\C8pFK\E2h\E7f\A89\B4\FBo}&aa\FA;\B7q\E8D\DE\B5\B5\DE{\EB\A3\F9D\BB\E8\A0\FA\F2\F6\A2\BB\C6\D1\CEaN?*H8\BD\B83y\FF\BA)\DDl)vnD\EF\EEOS\F5\FB\B0U \ 83 \ 94 \ E7D \ E0: \ A3R \ 94 \ EC \ B9O \ D9 %code%

Por centenas e centenas de linhas. Existe alguma maneira de salvar isso, ou devo apenas morder a bala e deletar tudo?

    
por Rich 28.09.2016 / 05:17

2 respostas

1

Eu recebo isso de vez em quando e normalmente eu apenas tiro o arquivo porque um arquivo corrompido é geralmente muito difícil, se não impossível, de se recuperar.

O problema é que os dados parecem ter sido corrompidos. O que explica o código hexadecimal aleatório, caracteres unicode, etc. que aparecem quando você espera texto legível. Corrupção de dados como essa geralmente é irrecuperável, então, a menos que você realmente precise de seu histórico completo de comandos que você executou, você pode apenas querer morder o marcador e apagar o arquivo para que ele possa começar de novo.

Você também pode renomear o arquivo para manter o conteúdo, se desejar, mas os dados permanecem corrompidos e provavelmente irrecuperáveis.

    
por Thomas Ward 28.09.2016 / 05:39
0

Tente

tr < {original_file} -d '
tr < {original_file} -d '%pre%0' > {backupfile}
0' > {backupfile}

Fonte: link

Além disso, parece que o zsh é melhor em lidar com isso do que o bash. Geralmente, fica apenas uma linha corrompida. Não consigo encontrar fontes específicas para menos corrupção no zsh, mas ele tem melhores recursos de histórico em geral.

    
por snugghash 28.09.2016 / 06:44