设为首页 收藏本站
查看: 973|回复: 0

[经验分享] Linux(三)

[复制链接]

尚未签到

发表于 2018-5-20 13:31:05 | 显示全部楼层 |阅读模式
  Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个非常大的文件系统可能会花费很多的时间(这里是指30G字节以上的文件系统)。

  1.命令格式:

  find PATH [options][action]
2.命令功能:
用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
3.选项与参数:
  1.与时间有关的选项:共有 -atime , -ctime , -mtime ,以 -mtime为例

   -mtime n :    n为数字,意义为在 n 天之前的 [ 一天之内 ] 被更动过内容的档案;
   -mtime +n :  列出在 n 天之前(不含n天本身)被更动过内容的档案档名;
   -mtime -n :   列出在 n 天之内(含n天本身)被更动过内容的档案档名;
   -newer file :   file 为一个存在的档案,列出比 file 还要新的档案档名;
  
举例1:
  #find / -mtime 0
  0 表示目前时间,所以,从现在开始到24小时前,有变动过内容的档案都会被列出来!如果是三天之前的24小时内,则被表示为 # find / -mtime 3
DSC0000.png

  举例2:
  #find /etc -newer /etc/passwd
  -newer 用在分辨两个档案之间的新旧关系是很有用的!
   DSC0001.png
  

  我们现在知道 atime ,ctime ,mtime 的意义,如果你想找出一天内被更改过的文件名,可以用举例1 的做法,但如果我想要找出『 4 天内被更改过的档案档名』呢?那可以使用『find /var -mtime -4 』。那如果是『 4 天前的那一天』就用『find /var -mtime 4 』。有没有加上『 +, -』差别很大!我们可以用简单的图示来说明一下
  

                                      DSC0002.png
                                                  find相关的时间参数的意义
  图中最右边为目前的时间,越往左边则代表越早前的时间轴啦。由图我们可以清楚的知道:
+4 代表大于等于 5 天前的档名:ex> find /var -mtime +4
-4 代表小于等于4 天内的档名:ex> find /var -mtime -4
4 则是代表 4-5 那一天档名:ex> find /var -mtime 4

  
2.与使用者或组名有关的参数:

  -uid n :  n 为数字,这个数字是用户的账号ID,即UID,
                这个UID是记录在 /etc/passwd 里面与账号名称对应的数字。
  
-gid n :  n 为数字,这个数字是组名的ID,即GID,
              这个GID是记录在 /etc/group 里面
-uesr name :     name 为使用者账号名称
-group name :  name 为组名
-nouser : 寻找档案的拥有者不存在 /etc/passwd 的人
-nogroup : 寻找档案的拥有群组不存在与  /etc/group 的档案
      当你自行安装软件时,很可能改软件的属性中并咩有档案拥有者,这是可能的!在这个时候,就可以使用 -nouser 和 -nogroup 搜寻。
举例3:
#find /home -user zyn
搜寻 /home 下属于zyn 的档案
DSC0003.png
举例4:
#find / -nouser
找到系统不属于任何人的档案
如果你将系统里的某个账号删除了,但该账号已经在系统里面建立很多档案时,就可能发生无主孤魂的档案讯在,此时你就可以用 -nouser 来找出该类型的档案并删除了。
DSC0004.png
3.与档案权限及名称有关的参数:
- name filename : 搜寻文件名为 filename 的档案;
-size [ +- ] SIZE :  搜寻比 SIZE 还要大或小的档案,这个 SIZE 的规格有:c 代表byte ,k 代表                              1024bytes, 所以,要找比50KB 还要打的档案,就是 [ -size + 50K ];
-type TYPE :    搜寻档案的类型为 TYPE 的,类型主要有:一般正规档案(f), 装置档案                                 (b,c),目录(d),连接档案(l),scoket(s),及 FIFO (p)等属性。
-perm mode : 搜寻档案权限 【刚好等于】 mode 的档案,这个mode 为类似 chmod 的属                         性值,举例: -rwsr-xr-x ,即4755,
-perm -mode : 搜寻档案权限【必须要全部囊括 mode的权限】的档案,举例:要搜寻
                          -rwxr--r-- ,即0744的档案,使用 -perm -0744,当一个档案的权限为
                          -rwsr-xr-x ,即4755时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了                             -rwsr-xr-x  的属性了。
-perm +mode : 搜寻档案权限【包括任意mode的权限】的档案, 举例:搜寻 -rwxr-xr-x ,                               即 -perm +755 时,但一个文件属性为 -rw------- 也会被列出来,因为他                            有-rw-------的属性存在!
举例5:
#find /-name passwd
找出档名为passwd 的这个档案
DSC0005.png
举例6:
#find /var -type s
找出 /var 目录下,文件类型为scoket的档名有哪些?
DSC0006.png
举例7:
#find /-perm +7000
搜寻档案中含有SUID 或 SGID 或 SBIT 属性的
所谓7000 就是 ---s--s--t ,那么只要有s或者t的就列出来, -7000 就是要含有---s--s--t 三个权限
DSC0007.png
4.额外可进行的动作:
-exec command :    command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到的                                    结果。
-print :     将结果打印到屏幕上,这个动作是预设动作!
举例8:
#find /-perm +7000 -exec ls -l{} \;
将上个例子找到的档案使用 ls -l 列出来
ls -l 就是额外的指令,指令不支持命令别名,所以不能用 ll
DSC0008.png
举例9:
#find / -size +1000k
找出大于1MB的档案
DSC0009.png
find的特殊功能就是能够进行额外的动作(action),我们将例8用途来说明一下;
                           DSC00010.png
{}代表的是有find找到的内容,如上图所示,find结果会被放到{} 位置中

-exec一直到 \; 是关键词,代表find额外动作的开始(-exec)到结束(\;),在这中间的就是find 指令内的额外动作,在本例中就是【  ls -l{} 】.
因为【 ;】在bash下是有特殊意义的,因此利用反斜杠来跳脱。








  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-465229-1-1.html 上篇帖子: linux入门(三)常见Linux指令及其用法 下篇帖子: linux系统ssh升级
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表