Linux常用命令-文件搜索命令
文件搜索命令
1、find /usr/bin/find #查找文件或目录,任何文件皆可,如图片,压缩包等
语法:find [搜索路径] [搜索选项] filename
a) find /etc -name 文件名 //-name 最常见的选项 按文件名搜索
eg:find /etc -name init // 在目录/etc中查找文件init文件
注意:
1-尽量缩小查找范围,不要在根目录下查找,不然:查找速度非常慢;占用大量系统资源.
2-占用系统资源越少越好,而且尽量在服务器压力较小时用find进行查找.
3- find /etc -name 文件名 查找结果与Windows不同,如:Windows会把所有包含init关键词的文件全都列出来而Linux则只会匹配init关键词
4-使用通配符:
*用于匹配任意字符
find /etc -name init* //查找所有以init开头的文件 *匹配任意字符
find /etc -name *init* //init左右都没有空格,用于查找所有包含init关键词的文件
?:用于匹配单个字符
find /etc -name init??? //这个文件会有七个字符,?匹配单个字符
find /etc -name ?init?? //
find /etc -iname ?init?? // 搜索时不区分大小写
b)find /etc -size 文件大小
//以数据块为单位的! 1数据块=512字节= 0.5KB, 1K = 2Blocks
100M=?blocks
100M = 102400K = 102400*2blocks
E.g
find /etc -size +163840 -a -size -204800 在/etc下查找大于80MB小于100MB的文件
find /etc -size -204800 #在/etc下查找大于80MB小于100MB的文件
find /etc -size 204800 #在/etc下查找等于100MB的文件,不常用!
c)find /etc -user username 更具所有者查找
d)通过时间属性查找:
1、以天为单位: ctime,atime,mtime
2、以分钟为单位: cmin,amin,mmin //更为常用
c-change 改变:表示文件的属性被修改过,比如:所有者,所属组,权限
a-access 访问:文件被浏览过
m-modify 修改:文件内容被修改过
-多长时间之内,+超过多少时间
E.g.
find /etc -mtime -1
find /etc -amin -60 //60分钟内被访问过的
find /home -cmin -120
e)find /etc -type 文件类型 //根据文件类型查找
f 二进制文件
l 软链接文件
d 目录
eg: find /etc -name init* -a -type f
f)-inum //根据i节点进行查找
新建的文件不好删除可以通过删除i节点
E.g.
touch -- -abc #删除:rm -- -abc
touch “a b” #删除:rm “a b”
ls -i
find . -inum 159341 / /注意点表示当前目录
find . -inum 159341 -exec rm -f {} \; //i节点为159341的文件,并删除它
附-find连接符:
1、 -a:and 逻辑与
-o:or 逻辑或
E.g.
find /etc -size +163840 -a -size 204800 #查找>80M,<100M的文件
find /etc -name init* -a -type f #查找名为init并且为二进制的文件,并不包含目录
2、find ….. -exec 命令 {} \; #固定格式,只能这样来写
{} :find的查询结果
\ :转义符-使得符号命令使用本身的含义
; :语句结束
e.g.
find /etc -name inittab -exec ls -l {} \; // 在/etc下查找inittab文件并显示其详细信息
find /home -user sax -exec rm -rf {} \; //删除用户sax所有的文件
find /home -user sax -ok ls -l {} \; //-ok连接符, 所有的目录,每一条都需要确认
find /etc -name init* -ok rm -rf {} \; //删除时询问
find /etc -name init* -ok rm -f {} \; //删除时询问
2、locate[list file in databases]: /usr/bin/locate 在文件资料库中查找文件
格式:locate [搜索关键字]
说明:
#是Linux所特有的命令,寻找文件或目录,最好用于快速定位系统命令,配置文件等
#虽然搜索速度很快,但有时候会找不到
#locate是在文件数据库中查找的,所以速度会很快
#但是如果数据库没有及时更新,他就会找不到,
更新资料库
updatedb [update a database for mlocate]: /usr/bin/updatedb
注意:tmp中文件是不在文件资料库,locate区分大小写 locate -i name 不区分大小写
注意:其执行权限为:root!!!
3、which /usr/bin/which //显示系统命令所在目录,绝对目录,不能查找文件
格式:which [系统命令] //还可以看到别名
e.g. which ls
附-whereis:也可以查找到命令的绝对路径
与whereis不同,which会列出这个命令的别名记录,而whereis还会显示出这个命令的帮助文档所在位置 /usr/share
4、grep: /bin/grep //在文件中搜寻字串匹配的行并输出
格式: grep [指定字串] [源文件] //区分大小写
grep -i [指定字串] [源文件] //不区分大小写
grep -v ^# [源文件] // -v 排除以关键字开始的行,这里是以#开始的行
E.g. grep ftp /etc/services

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
linux将一个文件移动到另一个目录下
用mv命令 1.作用 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令等同于DOS系统下的ren和move命令的组合。它的使用权限是所有用户。 2.格式 mv [options] 源文件或目录 目标文件或目录 3.[options]主要参数 -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。 -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。 4.第二个参数 当第二个参数类型是文件时,mv命令完成文件重命名,它将所给的源文件或目录重命名为给定的目标文件名。 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。 5.应用实例 (1)将/usr/udt中的所有文件移到当前目录(用”.”表示)中: $ mv /usr/udt/* . (2)将文件test.txt重命名为wb...
- 下一篇
linux目录操作命令
目录的创建 比如我要在根目录下创建lives/human/man/programmer/目录,怎么创建? 阶梯式创建目录 ---mkdir 首先创建lives,其次创建human,进而创建man,然后创建programmer: [root@localhost /]# mkdir /lives [root@localhost /]# mkdir /lives/human [root@localhost /]# mkdir /lives/human/man [root@localhost /]# mkdir /lives/human/man/programmer 是不是有些繁琐?是!但是,这样创建目录,可以控制每一层目录的创建符合你的预期,错了,立马可以纠正。 跳跃式创建目录 ---mkdir -p 比如你想在/lives/human/下创建woman/consumer目录,问题是此时并没有woman目录,只有在woman的基础上才能创建onsumer, 如果强制创建,你将会看到: [root@localhost /]# mkdir /lives/human/woman/consumer ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Hadoop3单机部署,实现最简伪集群
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16