本节,我们着重介绍zsh的文件名替换和自动补全功能
注意:这里的许多命令可以用其他的命令来实现,比如说ls -r做一个递归的搜索,但是我们的目的仅仅是介绍zsh,我们的目的是用zsh来实现同样的目的
例子1 显示所有以.pdf结尾的文件
当前路径
ls *.pdf
好的,热身一下,进入第二节
例子2 显示所有在当前路径以及所有子目录下以.pdf结尾的文件
ls **/*.pdf
**/告诉zsh要在当前目录和当前目录下的子目录里进行搜索
限定词的使用
他可以选择出特定的文件类型.你可以用"."表示一般文件,"/"代表路径,"*"代表所有的可执行文件,"@"代表链接文件,"="代表sokcets,"p"代表管道,"%"代表设备文件,"%代表"设备块文件,"%c"代表字符文件
例子3:显示当前目录以及子目录下的所有文件名包含"TEST"的普通文件
ls **/*test*(.) // (.)表示普通文件
文件权限,
文件的权限(r) (w) (x) ,对应文件属主读,写,可执行.对应组是(A), (I) and (E) ,对应其他用户(R),(W),(X)
例子4 前目录以及子目录下所有可执行文件
ls **/*(.x) //(.x)显示被文件属主拥有的可执行文件
例子5 当前目录以及子目录下所有对组没有写权限的普通文件
ls **/*(.:g-w:) //这里我们使用"chmod 样式",在g-w的首尾添加":"
用户和用户组
只检测你自己的用户和主组(U) (G),若是其他用户的需要添加用户ID或者组ID给(u)或者(g)
例子6查找所有属于你所在主要组的文件
ls -l **/*(.G) //(G)表示是主组
例子7 找出所有tomcat用户的文件
ls -l **/*(u:tomcat:)
通常情况下,使用u时应该指定uid,但是如果愿意使用用户名的话,可以使用这样的语法":username:"
修改和查看时间
zsh可通过修改和访问时间找出文件,对应的选项是(m)(a).你还可以搜索确切的时间,或者使用"-"或者"+"来表示相对于现在的时间.默认时间单位是天,你可以指定:月(M),星期(w),小时(h),mintues(m),秒(s)
例子8: 找出你上个月查看过的文件
ls **/*(.aM-1)
文件大小
文件大小通过"L"来表示,通常是以字节记,当然也可以用k,m,512字节块(p)
例子9 找出所有文件大小大于10m的
ls **/*(.Lm+10)
综述:
这些符号可以随意组合.你可以^来反转字符的意思.查看man手册来查看更多文件符.以及排列输出的多钟方式
终极任务:
找出root用户拥有的(u0),其他用户可写(W),大于10K(LK+10),1小时内修改过(M10)的文件
ls **/*(u0WLk+10m0)
via{here}
发表在《
发表在《
发表在《
英文,,让我蛋疼,翻译的还真不错呢,,zsh,啊呀,又是一堆命令
[回复]
freetstar
回复:
十一月 26th, 2010 at 9:59 下午
@SU ROOT, 比bash强多了
[回复]
其实,命令只要知道几个就足有了啊。。
大哥,你知道有什么好方法可以隐藏$RECYCLE.BIN这样的windows文件夹,然后又不影响windows么o(∩∩)o
[回复]
freetstar
回复:
十一月 7th, 2010 at 8:07 下午
不知道阿。我也挺烦这些东西的,没怎么研究过
[回复]
奶牛来学习一个~~~
[回复]
freetstar
回复:
十一月 7th, 2010 at 8:06 下午
:)今天好好整整了sunpinyin
[回复]
博主这两天一直在研究zsh呀
[回复]
freetstar
回复:
十一月 6th, 2010 at 3:01 下午
@大智若鲁, 是阿,zsh很强大
[回复]
昨天才用上,比之前一直用着的bash反而更加顺手好用
[回复]
freetstar
回复:
十一月 6th, 2010 at 12:01 下午
zsh是你需要使用的最后一个shell…哈哈,你懂得
[回复]