Linux中查找文件的常见命令

1、一般查找find

1.1简述及功能

Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。

1.2命令格式

man文档中给出的find命令的一般形式为:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

说明:

default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:

其实[-H] [-L] [-P] [-D debugopts] [-Olevel]这几个选项并不常用(才疏学浅),上面的find命令的常用形式可以简化为:

find [path...] [expression]

更加一般的格式为:

find  [path...]  [options]  [action]

1.3参数说明

path:find命令所查找的目录路径。

expression:expression可以分为——“-options [-print -exec -ok ...]” 

-options,指定find命令的常用选项

-print,find命令将匹配的文件输出到标准输出

-exec,find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command'  '{}' \;,注意{   }和\;之间的空格


options常用选项

-name  按照文件名查找文件

-perm  按照文件权限来查找文件

-user  按照文件属主来查找文件

-group  按照文件所属的组来查找文件

-mtime -n +n          查找n天内/n天前更改过的文件

-atime -n +n           查找n天内/n天前访问过的文件

-ctime -n +n            查找n天内/n天前创建的文件

-size  根据文件大小查找

-type  b/d/c/p/l/f/s  查找某一类型的文件 

-newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件


action选项

-print                                 //默认情况下的动作

 -ls                                     //查找到后用ls 显示出来

 -ok  [commend]              //查找后执行命令的时候询问用户是否要执行

 -exec [commend]          //查找后执行命令的时候不询问用户,直接执行


1.4举例说明

删除文件大小为零的文件:

find ./ -size 0 -exec rm '{}' \;  或者rm -i `find ./ -size 0`   或  find ./ -size 0 | xargs rm -f &

在$HOME中查.txt文件并显示:

find   ~   -name   "*.txt"   -print   

查找大于1,500字节大小的文件:

find / -size +1500c

查看当前目录下以.text为结尾的普通文件

find . -type f -name *.text -exec ls -l '{}' \;

2、数据库查找:locate

2.1描述及功能

         locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行。

locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)

2.2命令格式

locate [OPTION]... PATTERN...

2.3举例说明

[root@lsl locateDeme]# locate -V
mlocate 0.22.2
Copyright (C) 2007 Red Hat, Inc. All rights reserved.
This software is distributed under the GPL v.2.

This program is provided with NO WARRANTY, to the extent permitted by law.
[root@lsl locateDeme]# touch locate_test
[root@lsl locateDeme]# find ./ -name locate_test 
./locate_test
[root@lsl locateDeme]# locate locate_test 
[root@lsl locateDeme]# updatedb
[root@lsl locateDeme]# locate locate_test 
/root/study/locateDeme/locate_test
[root@lsl locateDeme]# rm locate_test 
rm: remove regular empty file `locate_test'? y
[root@lsl locateDeme]# locate locate_test 
/root/study/locateDeme/locate_test
[root@lsl locateDeme]# updatedb               
[root@lsl locateDeme]# locate locate_test 
[root@lsl locateDeme]# 

3查找执行文件:which/whereis

which用于人系统的PATH变量所定义的目录中查找可执行文件的绝对路径和相关命令的别名。

比如查找ls命令

[root@lsl locateDeme]# which ls
alias ls='ls --color=auto'
        /bin/ls
使用whereis也能查到路径,但是和which不同的是,它不但能找出其二进制文件,还能找出相关的man文件。

比如

[root@lsl locateDeme]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz






 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值