Linux通配符
2015-07-18 21:48
627 查看
Linux通配符
在我们平常的 Linux 使用中,在很多时候您可能需要一次对多个文件系统对象执行单一操作(如 cp)。在这些情况下,直接在命令行中输入许多文件名通常是很让人厌烦的:
[root@admin ~]# cp file1 file2 file3 file4 file5 …fileN /home/test/
为了解决这个问题, Linux 内置的通配符就起到很好的作用了。它允许您通过使用通配符模式一次指定多个文件。Bash 和其它 Linux 命令将通过在磁盘上查找并找到任何与之匹配的文件来解释这种模式。因此,如果在当前工作目录中,您有从 file1 到 fileN 的文件,那么您可以输入下面的命令来拷贝这些文件:
[root@admin ~]# cp file[1-N] /home/test/
或者,如果您想要删除文件名以 file 开头的所有文件,您可以输入:
[root@admin ~]# rm file*
常用的通配符有:
“* “:通配所有文件和目录,*代表0个或一个或多个字符
[123]:选择通配,匹配[]中的某个字符
[a-z]:选择通配,匹配a到z之间的某个字符,还能写成[A-Z]、[0-9]、[A-Za-z]等
? : 匹配任意一个字符
[!abc]:匹配任意不包含在[!]中的字符,这里[和!之间不能有空格
将t1目录下所有的隐藏文件拷贝到当前目录下(用 . 代表隐藏文件)
结果:
报错了,为什么呢?说明这样通配是错的,原因t1/.*中的 . 在这里代表的是当前目录而不是隐藏文件,如果这样写的话,就表示把当前目录拷贝到当前目录,这是个死循环。
应该像下面这样写
将t1目录下所有的文件拷贝到t2目录中
ls 是列出目录下所有的文件列表,但不包括二级目录中的内容,如果使用ls * 就会连二级目录中的内容一起列出来,但是不会管三级及其以上的目录中的内容了,仅到二级目录。如图所示:
假如有1 - 100的整数的目录文件
使用 ? 通配一个字符,例如:
在我们平常的 Linux 使用中,在很多时候您可能需要一次对多个文件系统对象执行单一操作(如 cp)。在这些情况下,直接在命令行中输入许多文件名通常是很让人厌烦的:
[root@admin ~]# cp file1 file2 file3 file4 file5 …fileN /home/test/
为了解决这个问题, Linux 内置的通配符就起到很好的作用了。它允许您通过使用通配符模式一次指定多个文件。Bash 和其它 Linux 命令将通过在磁盘上查找并找到任何与之匹配的文件来解释这种模式。因此,如果在当前工作目录中,您有从 file1 到 fileN 的文件,那么您可以输入下面的命令来拷贝这些文件:
[root@admin ~]# cp file[1-N] /home/test/
或者,如果您想要删除文件名以 file 开头的所有文件,您可以输入:
[root@admin ~]# rm file*
常用的通配符有:
“* “:通配所有文件和目录,*代表0个或一个或多个字符
[123]:选择通配,匹配[]中的某个字符
[a-z]:选择通配,匹配a到z之间的某个字符,还能写成[A-Z]、[0-9]、[A-Za-z]等
? : 匹配任意一个字符
[!abc]:匹配任意不包含在[!]中的字符,这里[和!之间不能有空格
将t1目录下所有的隐藏文件拷贝到当前目录下(用 . 代表隐藏文件)
[root@admin home]# cp t1/.* ./
结果:
cp: omitting directory `t1/.' cp: omitting directory `t1/..'
报错了,为什么呢?说明这样通配是错的,原因t1/.*中的 . 在这里代表的是当前目录而不是隐藏文件,如果这样写的话,就表示把当前目录拷贝到当前目录,这是个死循环。
应该像下面这样写
[root@admin home]# cp t1/.*txt ./
将t1目录下所有的文件拷贝到t2目录中
[root@admin home]# cp t1/* t2/
ls 是列出目录下所有的文件列表,但不包括二级目录中的内容,如果使用ls * 就会连二级目录中的内容一起列出来,但是不会管三级及其以上的目录中的内容了,仅到二级目录。如图所示:
假如有1 - 100的整数的目录文件
#要求列出 2 、3、4开头 5、6结尾的所有目录 [root@admin tt]# ls [2-4]*[5-6] 25 26 35 36 45 46 #列出2、3、4、5、6开头,5、6、7结尾的目录 [root@admin tt]# ls [2-4,5-6]*[5-7] 25 26 27 35 36 37 45 46 47 55 56 57 65 66 67 [root@admin tt]# ls [1-3,5-7]*[1-2,6-7] 11 16 21 26 31 36 51 56 61 66 71 76 12 17 22 27 32 37 52 57 62 67 72 77
使用 ? 通配一个字符,例如:
[root@admin tt]# ls 2? 20 21 22 23 24 25 26 27 28 29
相关文章推荐
- Linux编程常用头文件汇总
- 在Ubuntu(linux)下Eclipse中配置C/C++标准库
- linux下软链接和硬链接的区别
- apt包管理学习记录
- linux 设置pip 镜像 Pip Warning:–trusted-host 问题解决方案
- Linux常用命令之mkdir/cp
- Linux下的软件安装
- Linux下的软件安装
- Linux编程中的文件锁之flock
- CentOs配置静态ip和修改主机名称
- 假冒“国产”Linux为什么要狠批?
- Centos7 firewalld防火墙学习使用记录
- Windows、Unix、Linux是什么类型的操作系统?
- Linux常用命令之ls/pwd/cd
- linux c 获取文件行数
- linux中的daemon进程
- linux makefile入门简介
- Linux学习笔记——如何使用共享库交叉编译
- CentOS下源码安装GCC 5.2.0
- I.mx6s上移植wm8960驱动(基于linux3.0.101版本)