linux中有很多搜索功能的命令
find: find [path] [expression]
path 是要查找的目录路径,expression用于过滤和限制查找结果的选项和参数
expression中可使用的选项有二三十个之多,再次介绍最常用的部分
-mount,-xdev:检查和指定目录在同一个文件系统的文件下,避免列出其他文件系统中的文件
-amin n:在过去n分钟内被读取过
-atime n:在过去n天内被读取过的文件
-cmin n:在过去的几分钟内被修改过
-ctime n:在过去的n天内被修改过的文件
-empty:空的文件
-gid n or group name:gid是n 或 group是name
-ipath p,-path p:路径名称符合p的文件,ipath会忽略大小写
-name name,-iname name :文件名符合name的文件,iname会忽略大小写
-size n:文件大小是n单位,b代表512位元组的区块,c表示字元数,k表示kilo bytes,w是二个位元组
-type c :文件类型是c的文件
符号表示:
d:目录
c:字型装置文件
b:区块装置文件
p:具名贮列
f:一般文件
l:富豪连接
s:socket
-pid n :process id 是n的文件
你可以使用()将运算式分割,并使用下列运算。
exp1 -and exp2 (! expr) (-not expr)(exp1 or exp2)(exp1,exp2)
eg.
# find . -type f 当前目录及子目录的所有文件列出
# find . -name "*.c" 当前目录及子目录下的所有文件后缀为.c的文件
# find -ctime 20 在最近20天更新过的文件
# find /var/log -type f -mtime +7 -ok rm {} \; 查找/var/log 目录更改时间在7日以前的普通文件,并在删除之前询问他们;
# find . -type f -perm 644 -exec ls -l {} \; 查找当前目录中文属主具有读写权限,并且文件所属组的用户和其他用户具有读权限的文件;
# find / -type f -size 0 -exec ls -l {} \; 查看系统中所有长度为0的普通文件,并列出他们的完整路径。
locate:
sed:
grep: