寻求完美的文件命名方案:空格、破折号和下划线

Pin*_*ins 1 filenames

我正在尝试定义一个健壮的文件命名方案,以在我正在使用的系统中使用。我在大学实验室工作,我处理所有三个主要的操作系统:linux、macos、windows。因此,我想坚持可以轻松用于所有主要操作系统的东西。

目前我的文件/文件夹命名规则非常简单:

  1. 只使用英文字母中的小写字母和数字
  2. 没有空格,使用下划线 (_) 作为分隔符
  3. 禁止其他任何事情

虽然这很简单并且可以跨系统工作,但它的限制性太强。

例如,许多现代搜索文件/文件夹工具在文件名中包含空格可能很方便。事实上,如果我搜索“XXX YYY”,这些工具中的大多数都会查找文件名中包含这两个序列的所有文件/文件夹。没有空格就不是这种情况。

另一个例子是音乐专辑。大多数软件都有命名方案,如“艺术家 - AlbumTitle”、“艺术家 - 年份 - AlbumTitle”等。

我的问题是:

  1. 文件/文件夹名称中的空格有多危险?我接受的教育是,为了确保良好且易于维护的系统,最好避免使用空格。真的是这样吗?

  2. 我一直被告知另一个好的规则是避免使用破折号 (-)。但我意识到,例如在 linux 世界中,破折号在整个系统中使用。例如,ISO 标准日期类似于“2019-05-17”。

你对这些问题怎么看?我真的很想知道你最喜欢的文件/文件夹命名方案是什么

最佳彼得罗

use*_*686 7

只使用英文字母中的小写字母和数字

大写字母是免费的。Windows 不区分大小写,但保留大小写。(当然,避免使用多个文件名,这些文件名仅在情况下不同,因为 Windows 只允许访问其中一个。)

所有列出的操作系统都可以很好地使用 Unicode,所以用俄语或韩语命名文件应该没有问题。(某些程序,例如 Dropbox,仅支持高达 U+FFFF 的 BMP,即没有表情符号或其他现代非 BMP 附加功能——但仅此一项就已经涵盖了世界上大多数语言。您可以在https://codepoints 上查看特定字符如果您不确定,请访问net或类似网站。)

文件/文件夹名称中的空格有多危险?我接受的教育是,为了确保良好且易于维护的系统,最好避免使用空格。真的是这样吗?

对于常规文档/音乐/图片,文件名中间的空格实际上从来都不是问题。由于必须被引用,它们在命令行中有点不方便,但通常就是这样。

(Windows 中不允许末尾有尾随空格,前导空格可能会导致问题。)

另一方面,对于开发或系统文件,我强烈建议避免使用空格。

有一些工具不喜欢它们——如果你曾经试图编译一个使用“自动工具”或其他一些构建系统的程序,或者只是一个写得不好的 Makefile,当任何地方都有空间时,这将很难做到在路径中。

一些程序(系统守护进程,最常见的)也使用需要空格分隔路径列表的配置文件。其中一些允许引用或转义名称中的空格,而另一些则不允许。

我一直被告知另一个好的规则是避免使用破折号 (-)。但我意识到,例如在 linux 世界中,破折号在整个系统中使用。例如,ISO 标准日期类似于“2019-05-17”。

中间的破折号从来都不是问题。前导破折号通常是一个问题,因为命令行程序可能会将它们与它们混淆,--options并且您必须使用其他语法来使用此类文件名。

然而,这通常仍然是一个容易避免的问题。例如,rm -file-不会工作,但rm ./-file-会。图形程序根本没有这个问题(除非它们在幕后运行 CLI 工具)。


其他可能的问题(文件夹比文件更可能发生):

  • 通常的 Windows 禁止字符集: : < > ? * " \ / |
  • 以句点 ( .)开头的名称在 Linux 上被视为“隐藏文件”。
  • Windows 中不允许以句点 ( .) 或空格 ( )结尾的名称。
  • 以波浪号 ( ~)结尾的名称可能会被某些程序忽略为“备份文件”。
  • 多行文件名虽然在 Linux 技术上是允许的,但会导致各种麻烦。

其余的都是主观的,超出了本网站的范围。