文件通配符 | 学习笔记

简介: 快速学习文件通配符。

开发者学堂课程【Linux文件管理命令:文件通配符】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/591/detail/8342


文件通配符

 

内容介绍

一、知识回顾

二、文件通配符

三、预定义的字符类:man 7 glob

四、练习

五、创建空文件和刷新时间

 

一、知识回顾

常见目录结构:

/boot:启动相关

/home:用户家目录

/root:根目录

/etc:存放配置 /etc/profile.d/env.sh etc/profile HISTSIZE ; etc/issue/etc/motd ; /etc/DIR_COLOR ; etc/centos-release

/dev:存放设备,sdasr0zeronullrandom

/bin:存放用户用的二进制程序

/sbin:存放管理员用的二进制程序

/media:便携式移动设备挂载点

/mnt:临时文件系统挂载点

/var:存放变量 /var/log//var/www/html /var/spool/mail    

/tmp:存放临时文件

/proc:存放和进程相关信息,内存信息

/sys:存放和硬件相关文件

/usr:存放操作系统绝大部分文件                

/opt:存放用户数据

/selinux:存放 selinux

 

二、文件通配符

(1)    * 匹配零个或多个字符

练习:

1   [root@centos7 ~]# cd/data

2   [root@centos7 data]# ls

3   [rootacentos7 data]# touch f{a..z}.txt

4   [root@centos7 data]# ls

5   fq.txt fs.txt fa.txt fc.txt fe.txt fg.txt fi.txt fk.txt f1.txt fn.txt fm.txt fp.txt fo.txt fr.txt ft.txt fu.txt fv.txt fx.txt fw.txt fy.txt fz.txt fb.txt fd.txt ff.txt fh.txt fj.txt

6   [root@centos7 data]# touch f{a..z}.conf

7   [root@centos7 data]#ls

8   fa.conf fc.txt ff.conf fh.txt fk.conf fm.txt fp.txt fp.conf fr.txt fs.conf fu.txt fu.conf fw.txt fx.conf fz.txt fz.conf fa.txt fd.conf ff.txt fi.conf fk.txt fn.txt fn.conf fs.txt fx.txt fb.txt fb.conf fc.conf fe.txt fd.txt fe.conf fg.txt fg.conf fh.conf fi.txt fi.txt fj.conf f1.txt fm.conf f1.conf fo.txt fo.conf fq.txt fr.conf fq.conf ft.txt ft.conf fv.txt fw.conf fv.conf fy.txt fy.conf

9   [root@centos7 data]# ls *.conf

10  fa.conf fd.conf fg.conf fj.conf fm.conf fp.conf fs.conf fv.conf fy.conf fb.conf fe.conf fh.conf fk.conf fn.conf fq.conf ft.conf fx.conf fw.conf fz.conf fc.conf ff.conf fi.conf f1.conf fo.conf fr.conf fu.conf

11  [root@centos7 data]# ls f*.txt

12  fa.txt fc.txt fe.txtfq.txt fi.txt f1.txt fk.txt fm.txt fo.txt fq.txt fs.txt fu.txt fw.txt fy.txt fz.txt fb.txt fd.txt ff.txt fh.txt fi.txt fn.txt fp.txt fr.txt ft.txtfv.txt fx.txt

13  [root@centos7 data]# ls *h*

14  fh.conf fh.txt

(2)    ? 匹配任何单个字符

练习:

1   [root@centos7 data]# touch f{A..Z}{1..10}.conf

2   [root@centos7 data]# ls f?.conf

3   fa.conf fd.conf fg.conf fj.conf fm.conf fp.conf fs.conf fv.conf fy.conf fb.conf C.conf fe.conf fh.conf fk.conf fn.conf fq.conf ft.conf fw.conf fz.conf ff.conf fi.conf f1.conf fo.conf fr.conf fu.conf fx.conf

(3)    ~ 当前用户家目录

练习(输出结果过长,此处不予展示,可观看视频自行练习)

1   [root@centos7 data]# ls

2   [root@centos7 data]# ls /root

3   [root@entos7 data]# ls ~wang

(4)    ~mage 用户 mage 家目录

(5)    ~+ 当前工作目录

(6)    ~- 前一个工作目录

(7)    [0-9]  匹配数字范围

练习(输出结果过长,此处不予展示,可观看视频自行练习)

1   [root@centos7 wang]# ls f[0-9].*

2   [root@centos7 wang]# ls “f[0-9].*

3   [root@centos7 data]# ls “f[0-9].*

4   [root@centos7 data]# ls f[0-9].*

5   [root@centos7 data]# touch a[0-9].txt

6   [root@centos7 data]# touch a{0..9}.txt

7   [root@centos7 data]# ll a[0-9].txt

(8)    [a-z] :字母

练习(输出结果过长,此处不予展示,可观看视频自行练习)

1   [root@centos7 data]# touch b{a..z}.txt

2   [root@centos7 data]# ls b[a-z].txt

3   [root@centos7 data]# ls b[a-c].txt

(9)    [A-Z] :字母

练习(输出结果过长,此处不予展示,可观看视频自行练习)

1   [root@centos7 data]# touch b{A..Z}.txt

2   [root@centos7 data]# ls b[A-C].txt

3   [root@centos7 data]# ls b[ACz].txt

(10)  [wang] 匹配列表中的任何的一个字符

(11)  [^wang] 匹配列表中的所有字符以外的字符

1   [root@centos7 data]# ls b[^ACz].txt^ 代表除了的意思)

2   [root@centos7 data]# ls b[^ a-z].txt

 

三、预定义的字符类: man 7 glob

(1)    [:digit:]: 任意数字,相当于0-9

练习:

1   [root@centos7 data]# ls a[0-9]* a9.txt

2   a0.txta1.txt a2.txta3.txta4.txt a5.txt a6.txt a7.txt a8.txt

3   [root@centos7 data]# ls a[[:digit:]]*

4   a0.txt a1.txt a2.txt a3.txt a4.txt a5.4xt a6.txt a7.txt a8.txt a9.txt

(2)    [:lower:] 任意小写字母

练习:

1   [root@centos7 data]# ls b [ [:lower:] ].txt

2   by.txt ba.txtbc.txt be.txt bg.txtb1.txt bk.txt bm.txt bo.txt bq.txt bs.txt bu.txt bw.txt bz.txt bb.txtbd.txtbf.txtbh.txt bj.txt bl.txt bn.txt bp.txt br.txt bt.txt bv.txt bx.txt

(3)    [:upper:]: 任意大写字母

练习:

1   [root@centos7 data]# ls b [ [:upper:] ].txt

2   bA.txt bc.txt bE.txt bG.txtbI.txt bk.txt bM.txt bo.txt bP.txt bq.txt bR.txt bs.txt bu.txt bv.txt bw.txt bx.txt bz.txt bY.txt bB.txtbD.txtbF.txt bH.txt bJ.txt bL.txt bN.txt bT.txt

(4)    [:alpha:]: 任意大小写字母

(5)    [:alnum:]: 任意数字或字母

(6)    [:blank:]: 水平空白字符

(7)    [:space:]: 水平或垂直空白字符

(8)    [:punct:]: 标点符号

(9)    [:print:]: 可打印字符

(10)  [:cntrl:]: 控制(非打印)字符

(11)  [:graph:] :图形字符

(12)  [:xdigit:]: 十六进制字符

 

四、练习

1、显示 /var 目录下所有以 l 开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录

[root@centos7 ~]# ls/var/1*[ 0-9 ]* [ [:lower:] ] -d

[root@centos7 ~]# ls/var/1*[ [:digital:] ]*[ [:lower:] ] -d

2、显示 /etc 目录下以任意一位数字开头,且以非数字结尾的文件或目录

[root@lsxq~]# ls/etc/[0-9]*[^0-9]  -d

3、显示 /etc/ 目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录

[root@centos7 ~]# -d/etc/[^ [:alpha:] ] [ [:alpha:] ]*

4、显示 /etc/ 目录下所有以 rc 开头,并后面是0-6之间的数字,其它为任意字符的文件或目录

[root@centos7 ~]# ls/etc/rc[0-6]*  -d

5、显示 /etc 目录下,所有以 .d 结尾的文件或目录

[root@centos7 ~]# ls /etc/*.d -d

6、显示 /etc 目录下,所有 .conf 结尾,且以 m,n,r,p 开头的文件或目录

[root@centos7 ~]# ls -d /etc/[mnrp]*.conf

7、只显示 /root 下的隐藏文件和目录

[root@centos7 ~]#  ls -d/root/.*

[root@centos7 root]# ls -aI "[^.]*"

[root@centos7 root]# l. ls -d.*--color=auto

8、只显示 /etc 下的非隐藏目录

[root@centos7 ~]# ls -d /etc/*/

 

五、创建空文件和刷新时间

l  touch 命令

l  格式: touch [OPTION]... FILE...

(1)  -a 仅改变 atime ctime

(2)  -m 仅改变 mtime ctime

练习:

1   [root@centos7 ]# ll --time=atime anaconda-ks.cfg

2   rw---- 1 wang root 1895Sep 2418:17 anaconda-ks.cfg

3   [root@centos7 ~]# ll--time=ctime anaconda-ks.cfg

4   -rw-------.1 wang root 1895 Sep 22 01:58anaconda-ks.cfg

5   [root@centos7 ~]# ll anaconda-ks.cfg

6   -rw-------. 1 wang root 1895 Sep 22 01:55 anaconda-ks.cfg

7   [root@centos7 ~]# touch anaconda-ks.cfg

8   [root@centos7 ~]# ll anaconda-ks.cfg

9   -rw-------. 1 wang root 1895 Sep 2418:18 anaconda-ks.cfg

10  [root@centos7 ~]# ll --time=ctime anaconda-ks.cfg

11  -rW------- 1 wang root 1895 Sep 24 18:18 anaconda-ks.cfg

12  [root@centos7 ~]# ll --time=atime anaconda-ks.cfg

13  -rw------ 1 wang root 1895 Sep 24 18:18 anaconda-ks.cfg

(3)-t  [ [CC] YY] MMDDhhmm [.ss] 指定 atime mtime 的时间戳

练习:

1   [root@centos7 ~]# cd /data

2   [root@centos7 data]# touch ‘date +%F’.log

3   [root@centos7 data]# ls

4   2018-09-24.1og

5   [root@centos7 data]#ll

6   tota10

7   rw-r--r--1 root root 0 Sep 24 18:212018-09-24.log

8   [root@centos7 data]# stat 2018-09-24.log

9   File:'2018-09-24.1og

10  Size: 0    Blocks: 0 IO Block:4096 regular empty file

11  Device: 803h/2051d  Inode:67   Links:1

12  Access: (0644/-rw-r--r--)   Uid:( 0/ root)   Gid:( 0/ root)

13  Access: 2018-09-24 18:21:23.318840561 +0800

14  Modify: 2018-09-24 18:21:23.318840561 +0800

15  Change: 2018-09-2418:21:23.318840561 +0800

16  Birth: -

17  [root@centos7 data]# touch -t 201910200830.20 2018-09-24.log

18  [root@centos7 data]# stat 2018-09-24.log

19  File:'2018-09-24.1og

20  Size: 0    Blocks: 0 IO Block:4096 regular empty file

21  Device: 803h/2051d  Inode:67   Links:1

22  Access: (0644/-rw-r--r--)   Uid:( 0/ root)   Gid:( 0/ root)

23  Access: 2019-10-2008:30:20.000000000+0800

24  Modify: 2019-10-2008:30:20.000000000+0800

25  change: 2018-09-24 18:23:06.969838405 +0800

26  Birth:-

(4) -c  如果文件不存在,则不予创建

练习:

1   [root@centos7 data]# touch  -c  f1

2   [root@centos7 data]# ls

3   2018-09-24.1og

4   [root@centos7 data]# touch -c 2018-09-24.log

5   [root@centos7 data]# stat 2018-09-24.log

6   File:'2018-09-24.log’

7   Size:0.     Blocks:0     IO Block:4096 regular empty file

8   Device: 803h/2051d   Inode:67  Links:1

9   Access:(0644/-rw-r--r--)  Uid (0 / root)  Gid:( 0/root)

10  Access: 2018-09-24 18:23:52184837464 +08000

11  Modify: 2018-09-24 18:23:52184837464+0800

12  Change: 2018-09-24 18:23:52.184837464 +0800

13  Birth: -

相关文章
|
Web App开发 网络协议 数据可视化
tcpdump 和 wireshark 抓包工具 ,介绍、安装、命令使用。 详解三次握手、四次挥手。两个结合使用,会更好分析报文
这篇文章详细介绍了网络抓包工具tcpdump和Wireshark的使用,包括安装、命令选项、过滤器语法,以及如何通过分析TCP的三次握手和四次挥手来理解网络通信细节。
3980 1
|
9月前
|
Java 关系型数据库 MySQL
weixin050高校体育场管理系统+ssm(文档+源码)_kaic
本文针对高校体育场管理系统的开发与实现进行详细介绍。随着经济快速发展,人们对手机软件需求增加,高校体育场管理系统应运而生。系统采用JAVA技术、Mysql数据库和SSM框架等成熟技术,通过分析功能需求、可行性及性能,设计出包含管理员、用户和学生角色的功能模块。系统实现用户注册登录、信息管理等功能,简化传统手工统计模式,提高管理效率,满足用户对信息获取的及时性与准确性需求。
weixin050高校体育场管理系统+ssm(文档+源码)_kaic
|
9月前
|
Linux Shell
Linux 进程前台后台切换与作业控制
进程前台/后台切换及作业控制简介: 在 Shell 中,启动的程序默认为前台进程,会占用终端直到执行完毕。例如,执行 `./shella.sh` 时,终端会被占用。为避免不便,可将命令放到后台运行,如 `./shella.sh &`,此时终端命令行立即返回,可继续输入其他命令。 常用作业控制命令: - `fg %1`:将后台作业切换到前台。 - `Ctrl + Z`:暂停前台作业并放到后台。 - `bg %1`:让暂停的后台作业继续执行。 - `kill %1`:终止后台作业。 优先级调整:
727 5
|
人工智能 云栖大会
2024云栖大会,我们来了!
2024云栖大会亮点介绍
529 1
|
存储 缓存 数据处理
计算机随机访问存储器 (RAM)
【8月更文挑战第1天】
4265 5
|
JavaScript 前端开发
如何将你的项目上传到 npm
如何将你的项目上传到 npm
855 0
|
Linux Windows
【Linux】rzsz——本地Windows与云端Linux文件传输工具
【Linux】rzsz——本地Windows与云端Linux文件传输工具
335 0
|
存储 监控 Unix
Linux Crontab定时表教学大全(一看就会!)
Crontab 是一种在类 Unix 系统(如 Linux、FreeBSD、Solaris 等)中用于设置和管理定时任务的实用工具。通过编写 crontab 文件,用户可以安排命令或脚本在特定的时间点或周期性地自动执行。本教学将引导您了解 crontab 的基本概念、使用方法、语法和常见问题解决。
811 0
|
安全 Java 数据库
SpringSecurity系列(二) Spring Security入门
SpringSecurity系列(二) Spring Security入门
300 1
2022 数据结构与算法《王道》学习笔记 (十一)KMP算法 详细归纳总结 改进的模式匹配算法
2022 数据结构与算法《王道》学习笔记 (十一)KMP算法 详细归纳总结 改进的模式匹配算法
2022 数据结构与算法《王道》学习笔记 (十一)KMP算法 详细归纳总结 改进的模式匹配算法