bash脚本编程之算术运算
运算符:+,-,*,/,**,% 【注意:乘法符号在有些场景中需要加 \ 进行转义】
算数运算格式:
(1)let sum3=${num1}+${num2}
(2)sum3=$[${num1}+${num2}]
(3)sum3=$((${num1}+${num2}))
(4)sum3=$(expr ${num1} + ${num2}) 运算符两边要有空格,需要引用时使用$()或 ` ` 进行引用
文件查找
locate:根据事先构建的索引库进行模糊查找,路径符合条件时也会被搜索到
索引库自动实现:周期性任务,所以不能实时精确的查找
手动更新索引库:updatadb
-b:只查找文件基名符合条件的文件
-c:统计出多少符合条件的文件
特性:查找速度快,模糊查找,非实时查找
find:实时遍历指定文件路径下内容
用法:
find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
查找起始路径:默认为当前路径
查找条件:指定的查找标准,可以根据文件名、大小、类型、从属关系、权限等进行查找;默认为查找目录和文件
处理动作:对符合查找条件的文件或目录做出的操作,默认为输出查找结果至标准输出
根据文件名进行查找:
-name:根据条件进行查找,区分条件大小写
-iname:不区分条件大小写
根据文件从属关系进行查找:
-user USERNAME:查找属主为指定用户的文件
-group USERNAME:查找属组为指定用户组的文件
-uid UID:查找属主为指定UID的文件
-gid GID:查找属组为指定GID的文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
根据文件类型进行查找:
-type TYPE:查找文件类型为TYPE的文件
根据文件大小进行查找:
-size [+|-]NUM:+表示大于,常用单位k、M、G
根据时间戳查找:
(1)按“天”查找:#表示前第#天,+表示多去多长时间之前,-表示过去多长时间之内
-atime [+|-]#:访问时间
-mtime [+|-]#:修改时间
-ctime [+|-]#:改变时间
(2)按“分钟”查找:
-amin [+|-]#:访问时间
-mmin [+|-]#:修改时间
-cmin [+|-]#:改变时间
根据权限查找:
-perm [/|-] mode:为777类型的权限,例如:246,106,777等
mode:精确查找
/mode:任何一类用户(u、g、o)的权限中的任何一位(r、w、x)符合权限;9位权限有一位符合条件;或关系;某类用户权限为0时表示该类用户权限可有可无
-mode:没类用户的权限都符合条件;与关系;某类用户权限为0时表示该类用户权限可有可无
条件组合:组合搜索条件;例如搜索没有属主或文件类型为普通文件的文件
-a:与,默认组合逻辑
-o:或
-not,!:非
处理动作:
-print:输出至标准输出,默认动作
-ls:输出查找到文件的详细命令;类似对查找到的文件执行ls -l
-delete:删除查找到的文件
-fls FILE:将查找到的文件长格式详细(ls -l)输出保存至指定文件中
-ok COMMAND {} \ ; :对查找到的文件执行COMMAND命令;{}表示查找到的文件,占位符;反斜线与分号为固定格式;需对每个文件进行的操作进行确认
-exec COMMAND {} \; :与-ok类似对查找到的文件执行COMMAND命令,但不用对每个文件的操作进行确认
【注意:查找到的文件传递给后面的命令时,是find找到文件后一次性传递给后面的命令,但有些命令不能接受过长的参数,此时命令执行会失败;可使用 find XXXX | xargs COMMAND 执行】