创建新的文本文件时,是否应在其名称后添加.txt扩展名?


26

当我创建一个仅包含纯文本的新文档时,Ubuntu没有义务在其名称后添加.txt扩展名。它确实工作得很好:gedit可以毫无问题地打开它,并且很好地理解它只是文本。

从现在开始,我发现添加扩展名的唯一两个赞成理由是1 /与Windows系统的互操作性和2 /避免与同名文件夹的混淆。然而,这两个论点根本无法说服我。因此,是否应该保持对文件添加扩展名的反射?

Answers:


14

这完全是您自己的决定-不要让任何人为您选择。

如果这是“反射”,那么保持当前的习惯没有任何危害。另一方面,没有文件扩展名的话看起来确实更干净。

在我看来,使用扩展名的主要情况是,如果您通过电子邮件将文件发送给Windows用户-尽管他们仍然可以在记事本中打开文件(使用“文件”->“打开”),但如果您将其保留下来,可能会感到困惑。


5

在基于Linux的系统中,是否使用.txt扩展名都无关紧要。实际上,没有Windows上的特殊“文件扩展名”,它只是名称的一部分。MIME类型用于确定文件的类型。

但是,如果您希望与仍在使用Windows的用户共享文件,则除非您使用.txt扩展名,否则他们将不得不手动选择使用记事本打开文本文件。

还有其他兼容性注意事项。默认情况下,记事本不会正确显示新行,因为它使用了以Linux和其他类似Unix的系统结尾的不同行。文本编辑器将正确显示Windows格式的文本文件,但是您可能需要按backspace两次以删除新行。

使用名为Geany的文本编辑器,可以通过Document -> Set Line Endings菜单在行尾类型之间进行转换。在默认的文本编辑器(Gedit)中也可以这样做,但是我不知道该怎么做。

就个人而言,我不会将.txt扩展名或Windows行结尾用于日常使用,但在需要与Windows用户共享文件时会转换文件。


在Ubuntu上处理行尾问题的另一种方法是tofrodos软件包。它包括两个命令,它们将完成行尾转换“ fromdos”和“ todos”。
乔纳森·斯特恩伯格

4

在许多情况下,Ubuntu不需要文件扩展名,但是使用它们通常仍然是一个好主意。不仅为了与Windows / Mac兼容,还为了您自己的方便。想象一下是否要删除所有文件扩展名(.html,.jpg,.doc,.ttf,.txt,.py,.conf等);您必须一直检查文件类型,而不是在读取文件名时知道它(当然,类似的文件名README也很明显)。


4

如果您想了解更多有关Linux如何识别文件类型以及为什么扩展对该目的无用的信息,请查看file命令手册页。

man file

这是一种魔法 :)


2

如果您使用linux的话,扩展名是没有意义的。如果您想在Windows中查看该文件,则必须以扩展名查看,否则无法查看该文件。尽管保留了一个众所周知的扩展名可以提高互操作性,但它也可以帮助某些(编写得不太好)的应用程序更好地运行。例如,邮件客户端可能会为附件选择更合适的MIME类型,因此请自行决定。


1

该扩展名是可选的,但根据您的期望,您可能仍希望使用该扩展名。例如,图像查看器将无法打开扩展名错误的图像。在此示例中,缩略图也将失败。您可以通过将JPEG重命名为.GIF或.PNG来证明这一点。如果您有文件,但不确定是什么文件,则可以使用以下命令file filename找到文件名,其中文件名是有问题的文件。这是一些示例命令和输出:

file unity-panel_001.bmp 
unity-panel_001.bmp: PC bitmap, Windows 3.x format, 1280 x 21 x 24
me@zippy-64bit:~/Pictures$ file web-off.png 
web-off.png: PNG image data, 850 x 552, 8-bit/color RGBA, non-interlaced
me@zippy-64bit:~/Pictures$ file XfinityBillShowingLateFee.jpg 
XfinityBillShowingLateFee.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 2480x3437, frames 3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.