QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1054|回复: 0

bash的增强特性(二)

[复制链接]
发表于 2002-11-21 22:33:46 | 显示全部楼层 |阅读模式
实例说明
作者:tinybit
echo $HOME/*+d) 列出主目录底下全部文件,包括点文件。
echo /mnt/**.*/ 列出/mnt的目录树,但不进入已经安装到系统中的其他文件系统。
echo /mnt/**-*/ 列出/mnt的目录树,包括已经安装到系统中的其他文件系统。

echo /mnt/**/ 与 echo /mnt/**-*/ 相同。
echo **/+d) 列出当前目录底下的目录树,包括以点打头的目录名。
echo **/*.c+i+d) 列出当前目录树中全部 *.c 和 *.C 文件,不排除点文件。

echo **/*.c+i-d) 列出当前目录树中全部 *.c 和 *.C 文件,排除点文件。
echo **/*.c+i)/ 限定符“+i)”无效,因为它不处于末尾,它的右边还有东
西,就是多了一个“/”。
echo /**/ 列出根目录树,包括已经安装到系统中的其他文件系统。不要在你的机
器上这样尝试。如果你的机器安装了别的机器上的网络文件系统,将进入那台主机
查找。由于网络速度慢,这会耗费大量的时间。请使用下面的例子。
echo /**.*/ 列出根目录树,不包括已经安装到系统中的其他文件系统。
echo *f.x) 列出当前目录中的程序文件。
echo *typemark(\*)) 同样列出当前目录中的程序文件。注意括弧中的星号需要
用反斜杠转义,否则会被解释成通配符。
echo *l) (括号中是小写的L)列出当前目录中的符号链接。
echo *d.ox.or) 列出当前目录中其他人可进入且可读的子目录。
echo *:(modestr(d*r?x)) 同样列出当前目录中其他人可进入且可读的子目录。

echo *:(ur+uw+ux=2) 列出当前目录中用户的三个权限位中恰好有两个置位的文件。
echo *:(usrname(bin)) 列出当前目录中用户是 bin 的文件。
echo /dev/*:(b,c) 列出 /dev 目录中的设备文件。
echo /**/*:(dents=2) 列出根目录下所有的空子目录。
echo /**/*:(empty) 同样列出根目录下所有的空子目录。
echo /**/*:(f.x.(su,sg)) 列出根目录下suid或sgid的可执行文件。
echo *:(mtime>time-30d) 列出当前目录中最近一个月以来修改过的文件。
echo *:(cwday=0.mwday=1) 列出星期天创建、星期一修改的文件。
echo *:(ahour<2) 列出午夜至凌晨2点整以前访问的文件。
echo *:(adate(*~0[01]*) 同样列出午夜至凌晨2点整以前访问的文件。
echo *:(ahour*60+amin<150) 列出午夜至凌晨2:30以前访问的文件。
echo *:(adsec<150m) 同样列出午夜至凌晨2:30以前访问的文件。
echo *:(35-7*5) 列不出东西,因为 35-7*5=0,而 0 为假。
echo *:(-900+17**0) 列出当前目录下全部文件,因为 -899 为真。
echo *:(::+mtime<pathname) 列出当前目录下全部文件,按修改时间升序排列。如果
修改时间相同,再按照路径名升序排列。对路径名的排列使用的是本地排序规则。
echo *:(::+typemark<pathname) 列出当前目录下全部文件,按文件类型升序排列
。如果文件类型相同,再按照路径名升序排列。对路径名的排列使用的是本地排序
规则。这个排序把目录排到了一起,把可执行文件也排到了一起。
按照修改时间顺序列出以 b 打头的文件,再按照文件名顺序列出以 a 打头的文件
,可以这样操作

echo  :(::+mtime)  b*  :(::+pathname)  a*

也可以如下操作

echo  b*:(::+mtime)  a*:(::+pathname)

可以给 echo 加上 -C 或 -x 或 -l 开关,以使得输出格式符合你的需要。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 19:37 , Processed in 0.039106 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表