Linux三种通配符
2016-06-24 16:21
218 查看
基本的通配符有以下几个:
? 可替代单个字符
* 可替代多个字符
[charset] 可替代charset集中的任意单个字符
下面以例子加以说明:
如文件夹中有这些文件foo1, ..., foo9, foo10, ..., foo278,如果使用
rename foo foo0 foo?
则它只会把foo1到foo9的文件重命名为foo01到foo09,因为?通配符只能替代单个字符,所以被重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。
再继续使用
rename foo foo0 foo??
则文件夹中的foo01到foo99的所有文件都被重命名为foo001到foo099,而foo100及其以后的文件名都不变,因为通配符?的使用,所以只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。
如果再继续使用
rename foo foo0 foo*
则foo001到foo278的所有文件都被重命名为foo0001到foo0278,因为通配符*可替代多个字符,所以,所有以foo开头的文件都被重命名了,文件名中的foo被替换为foo0。
我们再来看通配符[charset]的用法,还是继续在上面所说的文件夹中,执行如下命令
rename foo0 foo foo0[2]*
则从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo。
在使用中,三种通配符可以一起结合使用,关于具体的其它用法就只有自己不断的摸索了。
? 可替代单个字符
* 可替代多个字符
[charset] 可替代charset集中的任意单个字符
下面以例子加以说明:
如文件夹中有这些文件foo1, ..., foo9, foo10, ..., foo278,如果使用
rename foo foo0 foo?
则它只会把foo1到foo9的文件重命名为foo01到foo09,因为?通配符只能替代单个字符,所以被重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。
再继续使用
rename foo foo0 foo??
则文件夹中的foo01到foo99的所有文件都被重命名为foo001到foo099,而foo100及其以后的文件名都不变,因为通配符?的使用,所以只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。
如果再继续使用
rename foo foo0 foo*
则foo001到foo278的所有文件都被重命名为foo0001到foo0278,因为通配符*可替代多个字符,所以,所有以foo开头的文件都被重命名了,文件名中的foo被替换为foo0。
我们再来看通配符[charset]的用法,还是继续在上面所说的文件夹中,执行如下命令
rename foo0 foo foo0[2]*
则从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo。
在使用中,三种通配符可以一起结合使用,关于具体的其它用法就只有自己不断的摸索了。
相关文章推荐
- linux openjdk java命令不能用 解决方法
- centos chmod改变文件权限
- 常用 Linux 命令
- linux mtd层ecc详解
- java 如何判断操作系统是Linux还是Windows
- java执行linux命令
- Linux下Eclipse中文乱码解决方案
- LINUX常用命令
- Ubuntu 窗口菜单栏消失
- centos删除文件空间不释放解决方法
- 深入理解SELinux SEAndroid(3最后部分)
- 深入理解SELinux SEAndroid(第二部分)
- linux 环境 iftop流量监控工具安装配置
- 深入理解SELinux SEAndroid(第一部分)
- 如何制作LINUX的patch文件及如何打patch
- linux--kvm--关于kvm的磁盘格式和缓存问题
- linux 日期时间计算
- Linux命令大全目录
- Linux命令大全目录
- Linux命令大全目录