人们说你不应该在 Unix 文件命名中使用空格。是否有充分的理由不在文件名中使用大写字母(即File_Name.txt
vs. file_name.txt
)?或者这只是个人喜好问题?
gol*_*cks 50
人们说你不应该在 Unix 文件命名中使用空格。
人们说了很多事情。有一些工具可能会出错,但希望此时它们的数量很少,因为空间是一种由大型消费者专有操作系统公司扩散的病毒,现在无法避免。
空格使在命令行上指定文件名等变得笨拙。就是这样。*nix 系统上唯一明确禁止的字符是 NUL(别担心,它不在您的键盘或其他任何人的键盘上)和/
,因为这是路径分隔符。1 除此之外什么都没有。单个路径元素(文件名)被限制为 255个字节(如果您使用扩展字符集,可能会出现复杂情况)和 4 KiB 的完整路径。
或者这只是个人喜好问题
我会说是的。大多数 DE 似乎在您的$HOME
( Downloads
, Desktop
, Documents
--D
非常流行) 中创建了大量大写的目录,因此没有什么奇怪的。还有非常常见的带有大写字母的传统文件,例如.Xclients
和.Xauthority
。
开始时将事物大写的一个价值是,当按字典顺序列出时,它们将出现在小写的事物之前——至少,对于许多工具,并且受语言环境的影响。
我是驼峰命名法(又名驼峰命名法)的粉丝,并将它与文件名一起使用,例如/home/goldilocks/blueSuedeShoes
——不管里面有什么。绝对是个人喜好的问题,但它尚未引起我的悲伤。
Java 类文件本质上倾向于包含大写字母,因为 Java 类名包含大写字母。当然,我们不要忘记NetworkManager
,即使我们中的一些人更愿意这样做。
1.有一个更加分隔,通过POSIX推荐“移植文件名字符集”是不包括空间-但它确实包含大写! POSIX还在同一文档的其他地方指定了关于“斜杠字符和空字节”的更一般的限制。这反映或反映在长期的传统做法中。
Dmi*_*yev 10
避免在文件名中使用大写字母的原因之一是 Unix 中的排序顺序区分大小写,因此以大写字母开头的文件将出现乱序。这就是为什么Makefile
通常使用大写字母命名的原因M
- 它是您想要首先查看的文件之一,而无需滚动/跳过低谷a-l
.
这就是说,你可以在文件名方面做得更糟:
-
可能会导致问题,因为许多程序会将其视为命令行选项而不是文件名(例如,rm -r
不会删除名为 的文件-r
)。.
在许多实用程序和 shell globbing 中隐藏它(例如rm *
不会删除诸如.config
)|<>*?
甚至不可打印字符newline
在技术上是可行的,但可能会破坏类似于空格字符的脚本/程序。不同之处在于空格字符经常被使用,所以程序员倾向于用它来测试他们的程序,而不太流行的字符通常没有经过测试。小智 6
如果您要与 Windows 环境交互,则应避免使用大写字母,因为 Windows 会将所有内容小写。这通常是相反的问题;一个链接Page_2.html
会page_2.html
在 Windows 中找到,但在 Unix 中会失败。
由于 NL_Derek 打开了这堆蠕虫,但没有正确阐明它,\n我会这样说:
\n\n使用大写字母是可以的,但您应该避免创建仅大小写不同的文件\n(在同一目录中) ,\ne.g.File_Name.txt
和 file_name.txt
,因为
FILENA~1.TXT
\ FILENA~2.TXT
n\xe2\x80\x94dir /x
来查看哪个短名称(如果有)与哪个长名称搭配。)cmd1 > foo
cmd2 > Foo
cmd2