复合运算符:
+=:即let I+=1相当于let I=I+1,亦相当于let I++
-=:同理
*=:同理
/=:同理
%=:同理
Linux文件查找详解
文件查找命令:
locate:全系统文件查找命令,非实时,查找是根据全系统文件数据库进行的,模糊匹配,但速度快,也可使用updatedb命令,手动生成文件数据库
find:实时,精确查找,但是速度慢,通过遍历指定目录中的所有文件完成查找,但优点是支持众多查找标准,使用方法如下:
find 查找路径 查找标准 查找到以后的处理动作
其中如果查找路径省略,则默认为当前目录,查找标准默认为指定路径下的所有文件(包括隐藏文件),处理动作默认为显示
find查找标准:
-name filename:对文件名做精准匹配
-iname filename:文件名匹配不区分大小写
-regex 模式:基于模式(正则表达式)查找
-user username:根据文件属主查找文件
-group Gname:根据文件属组查找文件
-uid UID:根据文件UID查找文件
-gid GID:根据文件GID查找文件
-nouser :查找没有属主的文件
-nogroup :查找没有属组的文件
-type 文件类型:根据文件类型查找
文件类型:f(普通文件)、d(目录)、b、c、l、p、s、
-size 数值:根据文件大小查找,默认为以字节值查找,可以通过k、m、g设置查找单位为kb, mb,gb,还可可以用+或-表示大于或是小于该值
组合条件:可以将find查找标准多个组合,如果给两个条件没给参数,则默认为-a也就是与逻辑
-a:与,要两个条件同时满足
-o:或,两个条件至少满足一个
-not:非
-mtime:根据修改时间查找文件
-ctime:根据改变时间查找文件
-atime:根据访问时间查找文件
-mmin:表示修改时间根据分钟查找
-cmin:表示改变时间根据分钟查找
-amin:表示访问时间根据分钟查找
-perm Mode:根据文件权限查找,精准匹配;-Mode:每一位权限都匹配才行(文件权限完全包含此mode时,即权限大于等于mode);/Mode:模糊匹配,9个权限中有一个匹配即可
处理动作:
-print:显示(默认)
-ls:即相当于ls -l命令
-ok command {} \; -ok命令用于跟命令,可以执行shell中的命令,{}表示引用,文件名称占位符,即指找到的文件,但是每次操作都要用户确认
-exec command {} \; 每次操作都要用户不需确认
07_04_特殊权限SUID等详解
xargs:从标准输入接受命令并执行,以空格区分每一行(可用于替代find中 -exec但功能更强大)
例如: find /etc -size +1m | xargs echo >> /tmp/etc.largefiles
特殊权限:
SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者,
例如: chmod u+s file
注:当文件本身有执行权限,+s显示为小写s,否则为大写S
SGID:对应的,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组;当在目录中使用时,有该权限有用户所建的文件属组都将变为目录的属组
StiKey:在一个公共目录,每个人都可创建文件,删除自己的文件,但不能删除别人的文件;例如:chmod o+t dir