Linux下查找命令和命令判断

目录

1.查找命令

(1)which和whereis

(2)locate

(3)grep

(4)find

1)按照文件名称查找

2)按照更改时间或访问时间等查找文件

3)对查找内容执行相应命令

4)查找多个类型文件

5)按权限查找:-perm

2.命令判断


1.查找命令

查找文件一般有以下几个命令:

  • which    查看可执行文件的位置
  • whereis  查看可执行文件的位置及相关文件
  • locate    配合数据库缓存,快速查看文件位置
  • grep     过滤匹配,它是一个文件搜索工具
  • find      查找相关文件

(1)which和whereis

(2)locate

locate命令和find -name 功能差不多,是它的另外一种写法,但是这个要比find搜索快的多,因为find命令查找的是具体目录文件,而locate它搜索的是一个数据库/var/lib/mlocate/mlocate.db,这个数据库中存有本地所有的文件信息;这个数据库是Linux自动创建并每天自动更新维护。相关的配置信息在/etc/updatedb.conf,查看定时任务信息在/etc/cron.daily/mlocate

示例:

可以发现刚创建的文件没有被找到,因为locate是去数据库查找,而数据库没有更新,这时需要我们手动更新,更新后就可以查找到

(3)grep

作用:过滤,它能够使用正则表达式来搜索文本,并把结果打印出来

参数:

  • -v  取反
  • -i  忽略大小写
  • ^# 以#开头
  • #$ 以#结尾
  • ^$ 空行
  • -n 对过滤的内容加上行号
  • |  或者的意思

过滤出/etc/passwd中包含nologin或root的行

注:这里的\是转义符

下面的这种是上述的加强版,不用转义

(4)find

格式:find    pathname    -options    [-print]

         命令字   路径名称        选项          输出

参数:

pathname:  find命令所查找的目录路径,不输入代表当前目录例如用 . 来表示当前目录,用 / 来表示系统根目录。

find命令选项:

  • -name  按照文件名查找文件。  “名称”
  • -perm  按照文件权限来查找文件。666 777 等
  • -user  按照文件属主来查找文件
  • -group  按照文件所属的组来查找文件
  • -mtime  -n  / +n  按照文件的更改时间来查找文件,
  •  - n 表示文件更改时间距现在n天以内
  •  + n 表示文件更改时间距现在n天以前
  • -type  查找某一类型的文件
  • b - 块设备文件
  • d - 目录
  • c - 字符设备文件
  • p - 管道文件
  • l- 符号链接文件
  • f - 普通文件
  • -size n  查找符合指定的文件大小的文件
  • -exec    对匹配的文件执行该参数所给出的其他linux命令, 相应命令的形式为' 命令 {} \;,注意{ }和 \;之间的空格,{}代表查到的内容

1)按照文件名称查找

示例1:查看当前目录下所有的TXT格式的文件

2)按照更改时间或访问时间等查找文件

如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项

  • mtime:  文件最后一次修改的时间
  • atime:  最后一次访问时间
  • ctime:  文件的最后一次变化时间,也就是修改时间

示例2:希望在root目录下查找更改时间在1天以内,被修改的文件

3)对查找内容执行相应命令

-exec    这个选项参数后面可以跟自定义的SHELL命令,格式如下:

例1:

例2:把查找到的文件移动到一个指定的目录

例3:把查找到的文件复制到一个指定的目录

xargs和find命令结合 复制文件    -i  表示 find 传递给xargs的结果 由{}来代替  (了解)

4)查找多个类型文件

比较符的使用:

  • -a  and 并且
  • -o  or  或者
  • +  超过
  • -   低于

5)权限查找:-perm

查找权限等于755的文件或目录

查找至少有644权限的文件或目录     在权限数字前面加减号表示至少

把系统中权限不低于777的危险文件或目录查找出来

把系统中权限不低于777的危险文件查找出来

指定查找的目录深度:

-maxdepth 1  #只查找目录第一层的文件和目录

查找/bin目录下权限等于755的可执行的文件

查找系统中所有属于用户boboyu的文件,并把这个文件,放到/root/test目录下

同一个目录下,可以创建文件mk和文件夹mk吗?同一个目录下创建的文件名和目录名一样吗?

答:不可以

2.命令判断

用到的三个特殊符号:   ;   &&     ||

(1)分号  不考虑指令的相关性,连续执行, 分号 不保证命令全部执行成功的

(2)&& 逻辑与====》它是只有在前面的命令执行成功后,后面的命令才会去执行

源码编译经典使用方法:

make -j 带一个参数表示项目在进行并行编译,make -j 4表示4各进程同时编译,这里加的参数取决于你的CPU的核数

(3)||   逻辑或===》如果前面的命令执行成功,后面的命令就不去执行了;或者如果前面的执行不成功,才会去执行后面的命令

运算顺序:如果有多个命令,LINUX执行命令,是从左到右一个一个执行,从上到下执行

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值