O arquivo do Linux contém “@ ^ @ ^ @ ^ @”, como restaurar?

1

Acabei de escrever um código c grande, mas quando eu salvo e abro novamente, o arquivo contém caracteres estranhos: "@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^ @^@^@^@^@0000664^@0001750^@0001750^@0000000031"

Como posso recuperar o arquivo?

Eu tenho escrito este programa durante todo o dia. : ((

    
por flatronka 19.05.2012 / 22:43

5 respostas

8

Isso pode ser um tiro longo, mas isso parece suspeitamente parte de um cabeçalho de arquivo TAR. Possivelmente você em um ponto tentou fazer o backup com o tar e usou o mesmo nome do arquivo de saída? A razão que eu suspeito isso, é porque um cabeçalho de arquivo TAR começa com:

 char filename[100];  // null padded
 char mode[8]; // octal
 char nuid[8]; // octal
 char ngud[8];
 char size[12];
 ...

Então, olhando para o trecho, ele se encaixa no padrão - o arquivo era rw-rw-r, com o ID de proprietário / grupo 1000, e o tamanho entre 200 e 207 bytes (parece que o campo é cortado em seu corte -n-colar). A resposta é se o arquivo tiver "ustar" começando no caractere 257. Nesse caso, apenas use o comando tar para tentar extraí-lo (em um diretório temporário, apenas no caso), esperamos que você consiga algo isso.

    
por 20.05.2012 / 00:59
2

Antes de sair do tipo vim

:e! your_file_path

para tentar carregar o arquivo. Isso é para o caso de você simplesmente tentar editar o arquivo errado.

Em outro shell, procure um arquivo your_filename.recover ou file_name.swp. Se encontrado então começando

vim -r file_name

deve recuperar seu arquivo.

    
por 19.05.2012 / 23:18
1

Houve poucas vezes em que encontrei esses caracteres em arquivos de log. Muitas pessoas os chamam de 'buracos' no arquivo, onde há alguma incompatibilidade entre a quantidade real de dados no arquivo e seu tamanho indicado. Como eu aprendi com minha pequena pesquisa sobre isso, isso acontece por causa do problema de sincronização quando mais de uma operação está sendo executada no arquivo ao mesmo tempo ou quando algum problema de espaço espacial foi encontrado no momento em que o arquivo foi gravado no disco. consulte-nos e este

Para resumir, não há nada nessa parte do arquivo e esses buracos são renderizados de maneira diferente por diferentes editores de texto.

Eu realmente sinto muito por você, como eu sei como dói a perda algo que você deu dia inteiro (junto com o seu amado esforço, sua paixão e energia), mas as chances são muito manso que você será capaz para recuperá-los.: (

    
por 20.05.2012 / 03:32
0

Você fez algo que removeu sua carruagem? Eu vejo isso quando escrevo um monte de saída para um arquivo e deixei de adicionar retornos de carro. A linha é muito longa.

    
por 20.05.2012 / 08:30
0

^ @ é zero binário, valores baixos, '\ 0', 0x00. O melhor palpite é que você tem uma string delimitada por zero e está escrevendo o comprimento da matriz char em vez de usar strlen .

    
por 20.05.2012 / 08:50

Tags