文件查找

which   
which passwd         //返回结果为:/usr/bin/passwd,而不是:/etc/passwd。which命令仅仅查找可执行文件。写脚本时尽量使用绝                                   对路径,而查看命令的绝对路径使用which命令
which cd   //得到locate /usr/bin/which: no cd in(/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:
                   /usr/bin:/root/bin)说明cd这个常用的命令找不到。那是因为cd是bash内置的命令。但是which默认是查找path内所规范                      的目录,所以当然一定找不到。可以通过type这个命令。

---------通常先使用whereis和locate命令来检查,如果真找不到了,才以find来查找--------------

whereis    查找文件或目录
基于数据库的查找。
whereis ifconfig  //结果:ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

locate   查找文件或目录
查找系统当中的所有文件。是一个基于数据库(/var/lib/mlocate)的查找。模糊查询方式。在搜索时必须要对目录有读和执行的权限。
updatedb                 //将系统中的所有文件更新到数据库中。一般在crontab中有这个命令,每天更新一次,所以第二天能够查到前                                     一天新建的文件,而往往查不到当天新建的文件。所以,要查找今天新建的文件必须手动输入执行updatedb                                     这条命令。
locate passwd
locate -i  passwd      //忽略大小写
locate -n 5 passwd   //仅列出前5个匹配的记录
locate -e                   //制定目录

find      查找文件或目录
实时查找,不是根据数据库查找。新建的文件,可以马上搜索出来。花费的时间很多。因为find是直接查找硬盘。

find -name shunyi                              //默认在当前目录下搜索。如果在/home/下输入这条命令,则/home/d5000/shunyi也能被搜索                                                               出来,而/tmp/shunyi搜索不出来。
find -iname snow.png                         //忽略大小写
find /home -name *.txt                       //在/home目录下查找

find . -name '*米泉*'                           //在当前目录下查找

find /home -user joe -group joe          //拥有人和拥有组都是joe的文件或目录
find /home -user joe -o -user jane      //或者
find -user joe not -group joe               //拥有人是joe且拥有组不是joe的文件或目录
find -not \( -user joe -o -user jane \)    //拥有人既不是joe也不是jane的文件或目录
find / -user joe -o uid 500    

find / -perm 755                                  //权限是755的文件或目录
find -perm +222                                  //u、g、o只要有一个能写即可
find -perm -222                                   //u、g、o权限每一个都能写

find -size 10M                                     //文件大小为10M
find -size +10M                                   //文件大小大于10M
find -size -10M                                    //文件大小小于10M

find /tmp -ctime +10                           //查找10天之前数据或权限被修改过的文件
find /tmp -amin -60                             //查找60分钟内被访问过的文件

对找到的文件进行处理
连接符:"-ok" 提示用户;"-exec"不提示用户。
以"space\;"结尾。
"{}"表示前面查找到的所有文件。
find -size +100M -ok mv {} /tmp/abc/ \;
find /tmp -ctime +3 -user joe -ok rm {} \;                    //tmp下查找修改超过3天的并且拥有人是joe的文件,然后把这些文件删除。
find ~ -perm -002 -exec chmod o-w {} \;
find /home -type d -ls                                                //查找文件类型是目录的文件夹,并显示
find /data -type f -perm 644 -name *.sh -ok chmod 755 {} \;

补充:文件时间
-atime    文件最后一次访问的时间
-mtime   文件最后一次被修改的时间
-ctime    文件的数据或权限最后一次改变的时间
stat file                                  //查看三个时间
more file1.txt                         //atime 变化,mtime、ctime不变
chmod file1.txt                       //ctime 变化,atime、mtime不变
vim file1.txt                            //atime、mtime、ctime都变化
touch file1.txt                         //atime、mtime、ctime都变化
-atime、-mtime、-ctime以小时为单位;-amin、-mmin、-cmin以分钟为单位。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值