2010-08-26 82 views
1

我有一个构建脚本,我创建一个文本报告文件并输出各种日志类型的东西给它。数据全部被建立到一个外部高清(根据'安装')有文件格式“fuseblk”(我从来没有听说过)。ruby​​中创建的文本文件正在构建为可执行文件

大楼似乎都可以正常工作,但我的报告文件被保存为可执行文件,该文件被linux解释为SOR文件。我希望他们只是普通的文本文件,默认情况下可以在我的常规文本编辑器中打开。

我正在做的文件,并写入到它,就像这样:

@report = File.open(File.join(DESTINATION_BUILD_FOLDER, "#{title.folder_name}_report.txt"),"w")  
... 
s = "making modules folder inside resource_library folder";puts s; @report.puts s 
... 
@report.close 

我已经这样做了很多次之前,从来没有遇到过这个问题。任何想法的人?

欢呼,最大

PS我知道我可以编辑保存的文件,使他们不可执行,我的问题是“为什么会这样摆在首位?”。干杯:)

回答

1

我不认为你的程序有什么问题。 fuseblk只是意味着它正在通过FUSE安装,它允许文件系统驱动程序作为用户空间程序运行,而不是内核模块。文件系统最有可能是NTFS或FAT32。

这里的问题在于Linux假定驱动器上的所有内容都设置了执行位。这是因为NTFS和FAT32都不具有存储Linux权限位的功能(NTFS具有非常不同的权限系统,FAT32几乎没有)。我敢打赌,你试图在gnome文件浏览器中双击日志文件,对吧?

那么,去那里的命令行,并使用较少或您最喜爱的命令行编辑器来查看它们。或者在文件浏览器中右键单击它们,或者使用文件 - >从文本编辑器打开它们。如果您将问题提交给了解Gnome(或KDE?)的人,那么您可能会得到更好的答案。

+0

感谢AboutRuby - 我可以打开它们,就像你建议的那样,但是为什么它们是可执行文件却感到困惑。但是,为什么linux会假定一切都是可执行的?这只是不知道时的“最安全”的默认位置吗? (由于缺少可执行位) 欢呼声 – 2010-08-26 10:02:15

+0

我没有在那里的答案。这只是在Linux上安装许多其他文件系统时的一贯做法。 – AboutRuby 2010-08-26 10:04:36

+0

不用担心,非常感谢:) – 2010-08-26 14:56:09