Linux下的文件搜索、查找、查看:
1、搜索命令:find查找各种文件的命令
2、在文件中查找文件:locate
3、搜索命令所在的目录及别名信息:which
4、搜索命令所在的目录及帮助文档路径:whereis
5、在文件中搜索字符串匹配的行并输出:grep
6、查看文件内容有多少字符多少行多少字节:wc
7、排序文件内容:sort
1、搜索命令:find查找各种文件的命令
一、根据 文件或目录名称 搜索
find [搜索目录] [-name/-iname] [搜索字符]:-name和-iname区别在于区分大小写;[*a]以a结尾的文件;[a???] "?"代表单个字符
1、find /etc -name init
2、find /etc -iname init
3、find /etc -name *init
4、find /etc -name init???
二、根据 文件大小 搜索
eg:在根目录下查找大于100M的文件
find / -size +100M
-size [+|-]#UNIT
常用单位:k, M, G,c(byte),注意大小写敏感
#UNIT: (#-1, #] 如:6k 表示(5k,6k]
-#UNIT:[0,#-1] 如:-6k 表示[0,5k]
+#UNIT:(#,∞) 如:+6k 表示(6k,∞)
find / -size +10M
单位:M、k
find / -size -10,则单位为数据块:1数据块 = 0.5Kb
10数据块 = 5Kb find / -size -5k
查找 在[0,4k]范围的文件
三、根据 所有者和所属组 搜索
1、find / -group root
2、find / -user root
四、根据 时间属性 搜索
find [路径] [选项] [时间]
选项有三种:-amin 访问时间
-cmin 文件属性被更改
-mmin 文件内容被修改
时间:+n,-n,n分别表示超过n分钟,n分钟以内,n分钟
eg:在 /etc 目录下查找5分钟内被修改过属性的文件和目录
find /etc -cmin -5
五、根据 文件类型或节点 搜索
-type根据文件类型查找:f普通文件、d目录文件、l符号连接文件、s套接字文件、c字符设备文件、d块设备文件、p管道文件
eg: find /home -type d
-inum 根据i节点查找
eg:查找 /tmp 目录下i节点为400342的文件或目录
find /tmp -inum 400342
六、组合条件 搜索
1、-a (and)表示两个条件都满足
2、-o(or)表示只满足其一即可
eg:1、查找 /etc 目录下大于80M同时小于100M的文件
2、查找 /etc 目录下大于80M且以i结尾的文件
2、在文件中查找文件:locate
locate [文件名] -i不区分大小写
ps:1、find是全盘检索;locate是在文件资料库中搜索;
2、因为文件资料需要不断更新,因此新文件需要在更新文件资料库后搜索
3、updatedb更新资料库,/tmp目录不属于文件资料库的收录范围
locate搜索一个数据库/var/lib/mlocate.db,这个数据库含有本地所有文件信息,Linux自动创建这个数据库,每天自动更新一次,刚刚建立的文件是无法找到的,需要受到更新数据库。整个locate工作其实是由四部分组成的:
1、/usr/bin/update 更新数据库
2、/usr/bin/locate 查询文件位置
3、/etc/updatedb.cfg updatedb的配置文件
4、/var/lib/mlocate/mlocate.db 存放文件信息的文件
locate参数:
在mlocate数据库中搜索条目.(条目就是文件)
-b, --basename 匹配唯一的路径名称的基本文件名
-c, --count 只显示找到条目的个数
-d, --database DBPATH 用 DBPATH 替代默认的数据库(/var/lib/mlocate/mlocate.db)
-e, --existing 只显示当前存在的文件条目
-L, --follow 当文件存在时跟随蔓延的符号链接 (默认)
-h, --help 显示本帮助
-i, --ignore-case 匹配模式时忽略大小写区别
-l, --limit, -n LIMIT 限制为 LIMIT项目的输出 (或 计数)
-m, --mmap 忽略向后兼容性
-P, --nofollow, -H 当检查文件时不跟随蔓延的符号连接
-n 至多显示 n个输出(eg:locate -n2 init)
-0, --null 输出时以 NUL 分隔项目
-S, --statistics 不搜索项目,显示有关每个已用数据库的统计信息
-q, --quiet 不报告关于读取数据库的错误消息
-r, --regexp REGEXP 使用正则运算式,做寻找的条件,--regex 模式是扩展正则表达式
-s, --stdio 忽略向后兼容性
-V, --version 显示版本信息
-w, --wholename 匹配完整路径名 (默认)
3、搜索命令所在的目录及别名信息:which
功能描述:搜索命令所在的目录及别名信息
which [命令]
eg: which ls
4、搜索命令所在的目录及帮助文档路径:whereis
whereis ls
5、在文件中搜索字符串匹配的行并输出:grep
grep -iv [指定字符串] [文件]
-i不区分大小写
-v排除指定字符串
eg:查找 /root/install.log 文件中包含的mysql字符串的行,并输出
grep mysql /root/install.log
6、查看文件内容有多少字符多少行多少字节:wc
wc [选项] [文件]
参数:-l 显示行数
-w显示单词数
-c显示字节数
7、排序文件内容:sort
eg:sort -b h.txt