当前位置: 首页 > 工具软件 > globbing > 使用案例 >

globbing文件名通配机制(第二周作业6-12)

梅修贤
2023-12-01

globbing文件名通配机制:
Linux下一切皆文件,那么为了更好的管理文件,Shell提供了一组称为通配符的特殊符号,用于模式匹配,如文件名匹配、路径名搜索、字符串查找等;用户可以在作为命令参数的文件名中包含这些通配符,构成一个所谓的“模式串”,以在执行过程中进行模式匹配。所谓通配是指:显示以指定条件的文件。如显示/var文件下a开头的目录或文件,至于a后面是什么我们不管,因此我们可以使用ls -d /var/a*。

通配符及其说明:
*:匹配任意长度的任意字符;
?:匹配任意单个字符
[ ]:匹配制定范围内的任意单个字符有几种特殊格式:
 [a-z] 、[A-Z] 、[0-9] 、 [a-z0-9] 、
 [[:upper:]] 表示所有大写字母
 [[:lower:]] 表示所有小写字母
 [[:alpha:]] 表示所有字母
 [[:digit:]] 所有数字
 [[:alnum:]] 所有字母和数字
 [[:space:]] 所有空白字符
 [[:punct:]] 所有符号字符
 [^] 匹配指定范围外的任意单个字符

练习:
1、显示/var目录下所有以l开头,以一个小写字母结尾,且重甲你至少出现一位数字(可以有其他字符)的文件或目录。
2、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录;
3、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录;
4、在tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22;
5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中;
6、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中;
7、复制/etc目录下所有以l或m或n开头,以,conf结尾的文件至/tmp/mytest3目录中;

参考答案:
1、

[root@azhuman var]# ls -d /var/l*[0-9]*[[:lower:]]
/var/l954l  /var/laaa9aaaa

2、

[root@centos6 etc]# ls -d /etc/[[:digit:]]*[^[:digit:]]
/etc/12345aaa  /etc/1sbzzz  /etc/1sbzzz!

3、

[root@centos6 etc]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/1aaaaaa666  /etc/1sbzzz  /etc/1sbzzz!  /etc/2aaaa  /etc/3A6b

4、

[root@centos6 tmp]# mkdir tfile-$(date +"%Y-%m-%d-%H-%M-%S")
[root@centos6 tmp]# ll
total 32
drwxr-xr-x. 2 root root 4096 Feb 18 12:50 tfile-2019-02-18-12-50-47

5、

[root@centos6 mytest1]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1
[root@centos6 mytest1]# ll
total 320
drwxr-xr-x.  2 root root   4096 Feb 18 13:32 pam.d
drwxr-xr-x.  3 root root   4096 Feb 18 13:32 pango
-rw-r--r--. 1 root root   1834 Feb 18 13:25 passwd
-rw-r--r--. 1 root root   1362 Feb 18 13:25 pbm2ppa.conf
-rw-r--r--. 1 root root   2872 Feb 18 13:25 pinforc
-rw-r--r--. 1 root root    370 Feb 18 13:25 pm-utils-hd-apm-restore.conf

6、

[root@centos6 tmp]# cp -r /etc/*.d /tmp/mytest2
[root@centos6 mytest2]# ll
total 112
drwxr-xr-x.  2 root root 4096 Feb 19 06:25 bash_completion.d
drwxr-xr-x.  2 root root 4096 Feb 19 06:25 chkconfig.d
drwxr-xr-x.  2 root root 4096 Feb 19 06:25 cron.d

7、

[root@centos6 mytest2]# cp -r /etc/[lmn]*.conf /tmp/mytest3
[root@centos6 mytest2]# cd /tmp/mytest3
[root@centos6 mytest3]# ll
total 52
-rw-r--r--. 1 root root  1662 Feb 19 06:35 latrace.conf
-rw-r--r--. 1 root root    28 Feb 19 06:35 ld.so.conf
-rw-r-----. 1 root root   191 Feb 19 06:35 libaudit.conf
 类似资料: