在 Linux 中命名文件的便捷方法

在 Linux 中命名文件的便捷方法

我注意到很多涉及 Linux 的人(例如教程和指南)倾向于在命名文件时省略空格并将其替换为字符“_”,我想知道是否有这样做的理由。我还想知道命名文件时应避免使用哪些其他字符。那么大写字母呢?我发现人们对小写字母的偏好。

最后一个问题是,在 Linux 中命名我的歌曲的最佳方式是什么。例如,我得到了很多格式为: 的文件track. artist name - song name.mp3,例如01. Crystal Castles - Untrust Us.mp3.我是否应该将格式更改为track._artist_name_-_song_name.mp301._Crystal_Castles_-_Untrust_Us.mp3我想知道您对此事的看法”。

答案1

从技术上讲,唯一明确禁止的字符是/\0NUL字节),因为它们具有特殊含义。

然而,为了方便起见,人们倾向于使用一些约定。例如,您注意到人们不喜欢使用空格而是使用_。这是因为空格是 *nix 命令行上的单词分隔符。因此,如果您在文件名中使用空格,则必须引用文件名或转义每个空格(使用\)才能将名称正确识别为单个实体。虽然你在文件名中使用空格,额外的努力阻止了许多人这样做。

此外,(有些人)避免使用大写字母,可能是因为输入这些文件名需要花费更多的精力 - 毕竟,按下Shift是非常困难的!

你的问题“什么是最好的惯例?”很难回答;与许多问题一样,在 *nix 下,最好的解决方案最适合

就我个人而言,我将音频文件保存在文件层次结构 ( ~/Music/<Artist>/<Album>/) 中,每个轨道名称如下所示:## - <Track Name>.ext

答案2

  • 大小写

    大写、小写和混合大小写都适合文件名。如果某些用户偏爱小写名称,那只是因为输入小写字母速度更快。

  • 空间

    文件名中可以​​有空格,但有一点需要注意:在编写 shell 脚本时,此类文件名需要更加小心。关于这个主题的基本教程是这里

  • 冒号

    :应避免使用冒号 ( )。这是因为,当将文件从一台计算机移动到另一台计算机时,使用诸如 之类的实用程序scp将计算机名称和文件名以 的形式组合起来是一种常见的约定machinename:filename。因此,如果您的文件名有冒号,可能会导致混乱。

  • 斜线

    您不能使用/该字符,因为该字符用于分隔目录名称,就像\在 Microsoft 系统上使用的那样。如果您想自由地来回传输文件,您可能应该避免这两种情况。

  • 可移植性

    许多 mp3 播放器使用旧式 Microsoft VFAT 文件系统。在这些文件系统上,:\*、 和?均被禁止。如果您要将文件传输到此类文件系统,最好也避免使用这些字符。

答案3

  • 大小写 - 注意

    *nix 上的常见文件系统(如操作系统)允许ThisFilethisfile存在于同一文件夹中。这是不可能的,例如在 vfat 或 ntfs 文件系统(以及相当多的其他旧文件系统)上。

答案4

最重要的是匹配现有的模式并坚持下去。无需浪费时间仔细思考即可找到答案。我明白我回答这个问题的讽刺意味;

苹果紧随其后/Library/Extensions/SomeExtension.file,所以我也像这样设置了我的工作目录:Projects/Client/Project/thing.extension

顺便说一句,我所做的前端开发工作也遵循 JS 和namingLikeThis.jsCSS的逻辑something-like-this.css- 在我的项目中混合约定,但不遵循整个技术。我询问了 Bootstrap 的创建者@胖的@mdo不久前,他们的方法很好。我采纳了它,再也没有认真思考过它。

这有点奇怪,但用一个合理的答案解决了这个难题,这样我就可以更少地思考或辩论来开始工作。

相关内容