我经常使用命令行来浏览文件,因此我尽量避免在文件名中使用空格。通常我使用下划线来连接单词,但最近有人建议我使用破折号。在文件名中使用下划线有什么缺点吗?我应该改用破折号吗?我的系统运行的是 Xubuntu,我几乎只使用 bash shell。
谢谢
答案1
就操作系统而言,它们都同样可用。
我要指出的一点是,一些软件(例如一些视频播放系统 - XBMC 等)在显示文件时会自动用空格替换下划线,以使它们看起来更美观。
仅仅因为这个原因,我就会倾向于坚持使用下划线。
另外,连字符用于切换命令,因此在文件名和命令开关中使用连字符可能会有点混淆。
除此之外,这完全取决于个人选择。
答案2
Dash 不需要按 SHIFT,这意味着您可以更快地输入。这是我能想到的除了 Jenkins 先生所建议之外的唯一其他好处。
提出该建议的人很可能是一位狂热的 Vim 用户,并希望用最少的键盘移动来完成所有事情。
答案3
我的建议是使用下划线代替空格。下划线通常是人们在替换空格时使用的惯例,尽管我认为连字符也可以。但由于连字符可能会以其他方式出现,例如带连字符的单词,因此使用下划线可以更成功地保留名称值。例如,如果您有一个名为“北卡罗来纳州温斯顿塞勒姆拍摄的照片.jpg”的文件,并且您想将空格转换为下划线,那么您可以保留名称中的连字符并保留其含义。
对于那些想要以高级方式使用命令行(例如在 for 循环中)的人来说,空格会带来麻烦,如下所示:
for file in *.mp3 ; do mpg321 $file -w - | oggenc -o ${file%%.mp3}.ogg - ; done
如果与该通配符匹配的任何 mp3 文件的名称中有空格,则会导致文件名被拆分成多个部分而不是整个文件名。您可以通过更改 BASH shell 的 IFS 变量或使用 find 命令来解决这个问题,但这很麻烦,而且很多人不知道这一点,所以它可能会导致问题。
我怀疑这项活动,甚至是保险杠贴纸活动是否能阻止人们在文件名中添加空格,但如果你想帮助自己,你会更加强大,我代表我们这些关心的人感谢你。
答案4
我个人更喜欢使用连字符而不是下划线,因为您不需要按住 Shift 键。但有一点要记住,如果您主要进行 Python 编码 - 并且您的代码树中有带连字符的文件/目录,并且您打算将它们用作模块(在代码中执行导入文件名),那么这将导致错误,因为 Python 模块中不能有连字符。当然,有间接的方法可以导入带连字符的模块,但我坚持使用下划线,因为它也遵循 PEP-8 指南。
因此,对于我的大多数 bin/ 程序或别名,我使用连字符,但在编写 python 程序/模块时,我使用下划线。