Unix2Dos: não pode stat - o que isso significa, por que isso acontece?

1

Eu tenho um arquivo txt que tem novas linhas do Unix e precisa ter novas linhas do Windows. Eu tento fazer unix2dos filename.txt mas recebo Unix2Dos: Can't stat 'filename.txt' . Na verdade, ele diz Can't stat 'xxx' para qualquer xxx que eu alimentei.

Eu tentei pesquisar no Google esse erro, mas não encontrei nada relevante para minha situação, e nenhuma descrição geral do que poderia causar esse erro.

Se isso faz alguma diferença, estou no Windows 7 e executando uma versão do Unix2Dos que baixei.

    
por gibson 10.09.2014 / 10:22

1 resposta

1

O erro vem desta parte (olhando o código-fonte do Unix2Dos):

    if (stat (path=*++argv, &s_buf) != -1)   
    {   
        printf ("Unix2Dos: Cleaning file %s ...\n", path);   
        if (u2dos (path))   
        {   
            fprintf (stderr, "Unix2Dos: Problems cleaning file %s.\n", path);   
            exit (1);   
        }   
    }   
    else   
    {   
        fprintf (stderr, "Unix2Dos: Can't stat '%s'.\n", path);   
        exit (1);   
    }   

Isso significa que a função stat pode ' t ser executado:

These functions return information about a file, in the buffer pointed to by stat. No permissions are required on the file itself, but—in the case of stat(), fstatat(), and lstat()—execute (search) permission is required on all of the directories in pathname that lead to the file.

[EDITADO por @ibson]

Nesse caso específico, o arquivo residia em um subdiretório de um diretório do Dropbox. Depois de mover o arquivo para outro lugar, o Unix2Dos conseguiu fazer bem o seu trabalho. Aparentemente, o Dropbox no Windows 7 faz algo com permissões de diretório.

    
por 10.09.2014 / 10:29