Linux学习记录(参考清华大学出版社《Linux命令速查手册》)(打卡第一天)(有关文件名及特殊字符,通配符)

1.1 一切皆文件

对Linux而言,一切皆文件(原文中如是说,但后面注释中又指出“Linux中,一切皆字节流”),我们平时用的音频,图片,视频都可看作文件。对于Linux来说,文件仅是位和字节流。

1.2 文件名最大长度

在Linux(和Unix)系统中,文件名最多可以设置为255个字符。
实际上,将文件名控制在少于80个字符是个不错的想法,因为显示终端的平均长度就是80个字符,这样命名可以使文件名在一行内完整显示,不必换行(只是建议,不必严格遵守)。

1.3 文件名区分大小写

在Linux中,文件名与指令必须区分大小写,如rm,写成Rm,RM,rM都不行,必须准确输入rm。

1.4 名称中需要区分大小写

命名文件的时候,Linux中有一些禁用字符。
/字符不可以使用,因为使用/字符的话,在输入路径的时候会造成误解。
可以使用连接符-或者下划线_来作为文件名中的字符连接单词。但要注意的是,使用-时不能把它放在第一个字符处。
始终可以安全使用的字符有:

数字
字母(大小写字母都可以,但一定要区分大小写)
圆点(.)——但大多数命令行和GUI环境会隐藏作为文件或目录名第一个字符的圆点
下划线(_)

字符建议
/绝不使用。不能转义
\必须转义。避免使用
-绝不能用作文件或目录名的第一个字符
[]必须转义。避免使用
{}必须转义。避免使用
*必须转义。避免使用
必须转义。避免使用
必须转义。避免使用
必须转义。避免使用
<空格>必须转义。通常无法避免,但尽量避免

在使用空格时要加反斜杠进行转义或者将文件名用双引号引用起来,以免让电脑误会,对错误的文件进行操作。

1.5通配符及其含义

通配符(使用通配符可以通过字符匹配一次指定多个文件)
有四种通配符:

*(星号)
?(问号)
[ ](方括号)
{ }(波形括号,也称大括号,因此得名“大括号拓展”)

注意: 波形括号和其他通配符不同。bash将前三个通配符进行的转换分类为文件名拓展,而波形括号提供的是大括号拓展。前三个通配符仅匹配现有的文件。波形括号不仅可以用于新建文件
现有以下文件:

libby1.jpg                    libby2.jpg
libby3.jpg                    libby4.jpg 
libby5.jpg                    libby6.jpg
libby7.jpg                    libby8.jpg
libby9.jpg                    libby10.jpg
libby11.jpg                    libby12.jpg
libby1.txt

通配符*及其匹配的内容

命令匹配
rm libby1*.jpglibby10.jpg到libby12.jpg,以及libby1.jpg
rm libby*.jpglibby.jpg 到 libby12.jpg,但不匹配libby.txt
rm *txtlibby.txt ,但不匹配libby1.jpg到libby12.jpg
rm libby*libby1.jpg到libby12.jpg,以及libby1.txt
rm *目录中所有文件

通配符?及其匹配的内容

命令匹配
rm libby1?.jpglibby10.jpg到libby12.jpg,但不匹配libby1.jpg
rm libby?.jpglibby1.jpg到libby9.jpg,单不匹配libby10.jpg
rm libby?.*libby1.jpg到libby9,jpg,以及libby1.txt

通配符[ ]以及其匹配的内容

命令匹配
rm libby1[12].jpglibby11.jpg和libby12.jpg,但不匹配libby10.jpg
rm libby1[0-2].jpglibby10,jpg到libby12.jpg,但不匹配libby1.jpg
rm libby[6-8].jpglibby6.jpg到libby8.jpg,但不匹配其他文件
通配符{ }也进行两种匹配:字符串和范围。如果要对字符串使用大括号扩展,则必须使用逗号分隔列表,然后bash会列出所有可能的组合。
$ ls
huan.jpg     libby.gif     libby.jpg     libby.png     libby.tiff
$ ls libby. {jpg,png}
libby.jpg     libby.png
$ ls {libby,huan}.jpg
huan.jpg     libby.jpg

大括号拓展也可用于生成文件以及匹配他们。如下例:

$ mkdir {dogs,cats,wombats}
cats dogs wombats

在本例中,没有匹配现有的文件或目录(这是*、?和[ ]的限制所在);相反,使用波形括号告诉mkdir待新建目录的名称。
[ ]用于匹配单个字符,而{ }用于匹配字符串,但要记住,字符串可以是单个字符!
看下面四条命令:

$ ls
testa     testab     testb     testbc     testc
$ ls test[a,b]
testa     testb
$ ls test{a,b}
testa     testb
$ ls test[ab,bc]
testa     testb     testc
$ ls test{ab,bc}
testab     testbc
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许倾墨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值