目录
find命令
按文件名查询
使用参数 -name
命令:find 路径 -name "文件名"
示例:find /home -name "*.c"
按文件类型查询
使用参数 -type
命令:find 路径 -type 类型
类型
普通文件类型用f表示而不是 -
d -> 目录
l -> 符号链接
b -> 块设备文件
c -> 字符设备文件
s -> socket文件
p -> 管道文件
查找指定目录下的普通文件: find 路径 -type f
按文件大小查询
使用参数 -size
命令:find 路径 -size 范围
范围
大于:+表示 -- +100k
小于:-表示 -- -100k
等于: 不需要添加符号 -- 100k
大小
M 必须大写(10M)
k 必须小写(20k)
c 表示字节数
例子: 查询目录为家目录
等于100k的文件: find ~/ -size 100k
大于100k的文件: find ~/ -size +100k
大于50k, 小于100k的文件: find ~/ -size +50k -size -100k
按文件日期
创建日期:-ctime -n/+ n
-n: n天以内
+n: n天以外
修改日期:-mtime -n/+n
访问日期:-atime -n/+n
按深度
-maxdepth n(层数)
搜索n层以下的目录, 搜索的层数不超过n层
-mindepth n(层数)
搜搜n层以上的目录,搜索的层数不能小于n层
高级查找
例:查找指定目录下所有目录,并列出目录中文件详细信息
find ./ -type d -exec shell命令 {} \;
find ./ -type d -exec ls -l {} \;
find ./ -type d -ok shell命令 {} \;
find ./ -type d -ok ls -l {} \;
注意: {}中间不能有空格
ok比较安全, 特别是在执行rm删除文件的时候.
find ./ -type d | xargs shell命令
find ./ -type d | xargs ls -l
grep命令
grep -r(有目录) “查找的内容” 搜索的路径
-r参数, 若是目录, 则可以递归搜索
-n参数可以显示该查找内容所在的行号
-i参数可以忽略大小写进行查找
-v参数不显示含有某字符串
搜索当前目录下包含hello world字符串的文件
grep -r -n "hello world" ./ ------显示行号
grep -r -i -n "HELLO world" ./ -------忽略大小小查找
find和grep命令结合使用
先使用find命令查找文件, 然后使用grep命令查找哪些文件包含某个字符串
find . -name "*.c" | xargs grep -n "main"