Unix2Dos:无法统计——这是什么意思,为什么会发生这种情况?

Unix2Dos:无法统计——这是什么意思,为什么会发生这种情况?

我有一个 txt 文件,它有 Unix 换行符,需要有 Windows 换行符。我尝试这样做,unix2dos filename.txt但得到的是Unix2Dos: Can't stat 'filename.txt'。事实上,Can't stat 'xxx'无论xxx我输入什么,它都会说。

我尝试用谷歌搜索此错误,但找不到任何与我的情况相关的内容,也没有关于可能导致此错误的一般描述。

如果有任何区别,我在 Windows 7 上并运行我下载的某个版本的 Unix2Dos。

答案1

错误来自这部分(查看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);   
    }   

这意味着,统计函数无法执行:

这些函数返回 stat 指向的缓冲区中有关文件的信息。文件本身不需要任何权限,但(对于 stat()、fstatat() 和 lstat())路径名中指向该文件的所有目录都需要执行(搜索)权限


[由@ibson 编辑]

在这个特殊情况下,文件位于 Dropbox 目录的子目录中。将文件移到其他地方后,Unix2Dos 能够正常工作。显然,Windows 7 上的 Dropbox 对目录权限做了一些操作。

相关内容