文件名包含下划线 (_)
这个非常普遍,不需要特殊对待。当作普通文件随意处理。
$ touch _12.txt
文件名包含等号 (=)
用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改)
$ touch '=12.txt'
处理反斜杠 ()
反斜杠会告诉 shell 忽略后面字符的特殊含义。你必须将文件名用单引号括起来,就像处理分号那样。其他的就没什么了。
$ touch '\12.txt'
包含斜杠的特殊情形
除非你的文件系统有问题,否则你不能创建名字包含斜杠的文件。没办法转义斜杠。
所以如果你能创建类似 ‘/12.txt’ 或者 ‘b/c.txt’ 这样的文件,那要么你的文件系统有问题,或者支持 Unicode,这样你可以创建包含斜杠的文件。只是这样并不是真的斜杠,而是一个看起来像斜杠的 Unicode 字符。
文件名包含问号 (?)
用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改)
$ touch '?12.txt'
文件名包含点 (.)
在 Linux 里以点 (.)
开头的文件非常特别,被称为点文件。它们通常是隐藏的配置文件或系统文件。你需要使用 ls 命令的 ‘-a‘ 或 ‘-A‘ 开关来查看这种文件。
创建,编辑,重命名和删除这种文件很直接。
$ touch .12.txt
注意:在 Linux 里你可能碰到名字包含许多点 (.)
的文件。不像其他操作系统,文件名里的点并不意味着分隔名字和扩展后缀。你可以创建名字包含多个点的文件:
$ touch 1.2.3.4.5.6.7.8.9.10.txt
检查一下:
$ ls -l
total 0
-rw-r--r-- 1 avi avi 0 Jun 8 14:32 1.2.3.4.5.6.7.8.9.10.txt
文件名包含逗号 (,)
你可以在文件名中使用逗号,可以有任意多个而不用特殊对待。就像平时普通名字文件那样处理。
$ touch ,12.txt
或者
$ touch ,12,.txt
文件名包含冒号 (:)
用单引号括起来或使用反斜杠转义。(LCTT 译注:此处原文有误,已修改)
$ touch ':12.txt'
或者
$ touch ':12:.txt'
文件名包含引号(单引号和双引号)
要在文件名里使用引号,我们需要使用交替规则。例如,如果你需要在文件名里使用单引号,那就用双引号把文件名括起来。而如果你需要在文件名里使用双引号,那就用单引号把文件名括起来。(LCTT 译注:或者如果单引号和双引号混杂的情况,你也可以用反斜杠转义。)
$ touch "15'.txt"
以及
$ touch '15".txt'
文件名包含波浪号 (~)
Linux 下一些像 emacs 这样的文本编辑器在编辑文件的时候会创建备份文件。这个备份文件的名字是在原文件名后面附加一个波浪号。你可以在文件名任意位置使用波浪号,例如:
$ touch ~1a.txt
或者
$touch 2b~.txt
文件名包含空格
创建名字的字符/单词之间包含空格的文件,比如 “hi my name is avishek.txt”。
最好不要在文件名里使用空格,如果你必须要分隔可读的名字,可以使用下划线或横杠。不过,你还是需要创建这样的文件的话,你可以用反斜杠来转义下一个字符。要创建上面名字的文件可以这样做。
$ touch hi\ my\ name\ is\ avishek.txt
hi my name is avishek.txt
我已经尝试覆盖你可能碰到的所有情况。上面大多数测试都在 BASH Shell 里完成,可能在其他 shell 下会有差异。
如果你觉得我遗漏了什么(这很正常也符合人性),请把你的建议发表到下面的评论里。保持联系,多评论。不要走开!求点赞求分享求扩散!