shell编程——文件操作
文件操作非常常见,比如log日志查看,读写删除等。
find path -option [ -print ] [ -exec -ok command ] {} \;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| find 命令参数: path: 查找路径 .当前目录 /系统根目录 -exec:对匹配的文件执行该参数,相应形式为'-exec command {} \;' -ok: 和-exec 作用相同,区别是-ok更安全,执行命令前都会有提示 是否执行。 -print: 将查找的文件输出到标准输出 例如:'结果|xargs 命令' -->xargs将结果放到后面的命令里 ================================================================== [find 目录 -name filename] -perm 755 #按执行权限来查找 -user username # 按文件属主查找 -group 按组 -mtime -n/+n #-n指n天以内,+n指n天前 -atime -n/+n #按文件访问时间来查 -ctime -n/+n #按文件创建时间来查 -1一天之内 -nogroup #按无效属组 来查 -nouser -newer f1 !f2 #查找更改时间比f1新比f2旧的文件 -type b/d/c/p/l/f #查找块设备/目录/字符设备/管道/符号链接/普通文件 -prune #忽略某个目录 -ftype vfat #查文件类型 =================================================================== find ~ -name "*.txt*" -print #在$HOME中查txt文件并显示 .当前目录 find . -name "[A-Z]*" -print #查大写字母开头的文件 "host*"host开头 find /etc -name "[a-z][a-z][0-9].txt" #查以两个小写字母和一个数字开头的txt文件 find . ! -type d -print #查不是目录的数据 find . -name "yao*"|xargs echo "">/core.log #将查出结果写入log文件 find /home -mmin +60 #在/home下查60分钟前修改过的文件 -60 find /home -atime -1 #查1天之内被存取过的文件 -amin分钟内访问过的 find /home -empty #查找大小为0的文件或空目录 find /home -size +512k #查大于512k的文件 -512K find /home -links +2 #查硬连接数大于2的文件或目录 find /tmp -name tmp.txt -exec cat {} \; find /tmp -name tmp.txt -ok rm {} \;
|
param |
description |
$# |
传递到脚本的参数个数 |
$* |
以一个单字符串显示所有向脚本传递的参数 |
$$ |
脚本运行的当前进程ID号 |
$! |
后台运行的最后一个进程的ID号 |
$@ |
与$*相同,但是使用时加引号,并在引号中返回每个参数。 |
$- |
显示Shell使用的当前选项,与set命令功能相同。 |
$? |
显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |