全部博文(2065)
分类:
2009-12-25 08:46:23
Shell学习专题之文件名置换
[整理人:hkebao@126.com 整理时间:
本专题讨论内容如下:
1、
匹配文件名中的任何字符串。
2、
匹配文件名中的单个字符。
3、
匹配文件名中的字母或数字字符
以下是特殊字符:
* 匹配文件名中的任何字符串,包括空字符串。
? 匹配文件名中的任何单个字符。
[…] 匹配[]中所包含的任何字符
[!...] 匹配[]中非感叹号! 之后的字符
4.1 使用*
表示匹配文件名中的任何字符串。例如
$ ls app*
表示匹配以app打头后面跟随任何字符串,包括空字符串。
在使用cd命令切换路径的时候,通过使用* 号还可以省去输入整个路径的麻烦。例如:
例如:ls
-rw-r--r--
1 root root 6 11月 24 08:
-rw-r--r--
1 root root 79 11月
7 19:26 conf.conf
-rw-r--r--
1 root root 1064 2009-03-21
log.py
-rw-r--r--
1 root root 1446 2009-03-27
log.pyc
drwxr-xr-x
3 root root 4096 11月 26 11:10 newMonitor
drwxr-xr-x
2 root root 4096 11月 9 16:36 rpc
-rw-r--r--
1 root root 1630 11月 7 03:09 run.log
-rw-r--r--
1 root root 7773 2009-03-27
S2Server.py
drwxr-xr-x
7 root root 4096 11月 26 10:30 shell
现在我要进入 newMonitor目录就可以输入
cd *or
表示以or 结尾的目录!
4.2 使用?
可以匹配文件名中的任何单个字符。例如
列出文件名以任意两个字符开头,接着是R后面跟任何字符的文件!
$ls ??R*
4.3 使用[…]和[!...]
而且我们可以通过使用一个横杠- 来连接两个字母或数字,以此表示一个范围。
示例:(如果没有使用- 则表示或者或者)
以I 或o 开头的文件名示例:
$ls [io]*
其中的[] 表示是一个区间范围的!
这样的话我们在将来的查找定位文件或目录的时候就能够快速找到所要的文件了!