在文件名中使用下划线?


25

我经常使用命令行浏览文件,所以我尽量不要在文件名中留空格。通常,我使用下划线连接单词,但最近有人建议我使用破折号。在文件名中使用下划线是否有任何不利之处?我应该切换到破折号吗?我的系统正在运行Xubuntu,而我几乎只使用bash shell。

谢谢



1
如果您将使用LaTeX,则可能必须在两个方括号内保护文件名{...}。如果是自动脚本,则应考虑使用它。将_用于创建一个下标,并在被包含例如 $...$为了避免错误,但它会产生从你期待什么不同的文字。在gnuplot的增强终端中..
Hastur 18'Apr 12'18

Answers:


22

就操作系统而言,它们两者都彼此可用。

我要指出的一件事-某些软件(例如某些视频播放系统-XBMC等)在显示文件时会自动将下划线替换为空格,以使其看起来更好。

仅出于这个原因,我很想坚持使用下划线。

另外,连字符用于切换到命令,因此在文件名和命令切换中都带有连字符可能会引起混淆。

除此之外,这完全取决于个人选择。


1
我使用hythens,但这是因为我更喜欢外观。出于技术原因。
beatgammit

谢谢!那是我所怀疑的,但我也发现,单凭怀疑就可以惹上麻烦。
DQdlM 2011年

16

Dash不需要您按SHIFT键,这意味着您可以更快地键入内容。这是詹金斯先生所建议的唯一的其他好处。

提出该建议的人可能是Vim的狂热用户,并希望以最少的键盘移动来完成所有操作。


7
如果是这种情况,他们会vi改用-减少一次击键;)
Majenko 2011年

4
@马特这是alias“编到v反正;-)
丹尼尔·贝克

+1出于同样的原因,我使用带大写字母的下划线,例如FOO_BAR(我不使用大写字母锁定,因此能够一直按住Shift键很不错)。
理查德·汉森

@DanielBeck其实,我在我的bash别名,以及g用于git:)
扬Warchoł

我相信vim会将两个由连字符分隔的单词视为一个单词,因此这可能是作为vim用户在文件名中使用下划线的原因。
十一点

8

我的建议是使用下划线而不是空格。下划线通常是人们在替换空格时使用的约定,尽管连字符也很好。但是由于连字符可能会以其他方式显示,例如连字,因此使用下划线可以在保留名称值方面取得更大的成功。例如,如果您有一个名为“在Winston-Salem中拍摄的照片,NC.jpg”的文件,并且要将空格转换为下划线,则可以在名称中保留连字符并保留其含义。

对于想以高级方式(例如for循环)使用命令行的人,空格会引起问题:

for file in *.mp3 ; do mpg321 $file -w - | oggenc -o ${file%%.mp3}.ogg - ; done

如果与该通配符匹配的任何mp3文件的名称中都有空格,则将导致文件名被分成几部分,而不是整个部分。您可以通过更改BASH shell的IFS变量或使用find命令来解决此问题,但是这很烦人,很多人不知道这一点,因此可能会引起问题。

我怀疑这一举动,甚至是一个大动作,都会阻止人们在文件名中添加空格,但是如果您想自助,请多加力量,并代表关心我们的人向您表示感谢。


1
我完全同意。结构良好的文件名无需空格。
DQdlM 2011年

4
@KennyPeanuts-但是写得很好的程序不会在空格上窒息。
熟练地

2
@detly -德勤”
DQdlM

1
@detly不,一个好的程序员知道您可以做的事情和应该做的事情都受到限制。如果您说它不应该在空格处阻塞,那么有人可以说它不应该在行尾阻塞,然后有人会说它不应该阻塞/,然后有人可以说它不应该阻塞在文件末尾。有句古话“失败的公式:尽力让每个人都满意”。
deltaray 2011年

1
文件系统规范告诉您要编码的内容,不多也不少。上的Ext2 / 3/4,例如,一个文件名可能包含除任何字符\0\\\`. Coding to anything less than that is broken by design. So, no, it shouldn't choke on spaces, or EOL, or non-ASCII characters, or anything that isn't \ 0`或'\'。使用库函数进行文件路径操作是必经之路,因为许多其他人已经解决了这些问题。
精美的2011年

5

您应该考虑使用连字符而不是下划线的唯一原因是出于基本的可读性。频繁的下划线会影响阅读效果,因为它会将视线从y轴中心更改为底部。但是,连字符使您的眼睛更轻松。

就操作系统而言,这两个字符均有效,并且不需要转义(空格需要转义,因此很难使用)。


2
我发现基本的可读性原因纯粹是主观的。我发现下划线更容易阅读,因为我几乎可以在视觉上忽略它们-不阅读它们-破折号实际上我必须阅读它们。
goliatone

3

我个人更喜欢连字符而不是下划线,因为您无需按住Shift键。但是要记住的一件事是,如果您主要是在进行python编码-并且您的代码树中包含带有连字符的文件/目录,并且您打算将它们用作模块(在您的代码中执行导入文件名),那么这将导致错误因为python模块中不能包含连字符。当然,导入带有连字符的模块有多种方法,但是我坚持使用下划线,因为它也遵循PEP-8准则。

因此,对于我的大多数bin /程序或别名,我都使用连字符,但是在编写python程序/模块时,我使用下划线。


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.