bmwm3 发表于 2018-5-21 09:40:58

Linux find 等查看文件

  1. which:
      a) 文件要在PATH目录下
     b) 文件必须是执行(+x)权限的
  2. Whereis
     a) 搜索路径也有局限
     b) 搜索的是模糊文件,只要包含相关的关键字
  3.Locate   需要安装(yum –y install mlocate)
     a) 每次都需要updatedb
     b)搜索的是模糊文件,只要包含相关的关键字
     c) 不会搜索/tmp下的文件
  4.Find + 路径 + + 文件名(aming, “aming*”)
     a) –name
     b)–type f (c)
     c)–mtime +10(大于10天)
     d) –atime
     e) –ctime
     f)–mmin -5(小于5分钟)
     g)–num + inode数字(ls -li)
     h) 用法1: find /var/log –type f| xargs rm 查到30天的文件都删除
     i) 用法2:find /tmp/ -type f | xargs –I mv {} {}.bak
  find -perm mode , 表示严格匹配,也就是你的文件权限位转换成对应的十进制数字与mode一模一样
find -perm -mode , 表示mode中转换成二进制的1在文件权限位里面必须匹配,0不管
find -perm +mode , 与 -mode的区别是+mode只需其中的任意一个1的部分被匹配,-mode是所有1的部分都必须被匹配,同样+mode也不管0位。
  

  atime:访问时间,mtime:更改权限,在文件写入时,ctime:更改权限或者修改时
  查看三个时间,用stat +文件。其中echo 不修改一个文件的atime
  

使用命令echo "111111" >> 1.txt 会更改1.txt的哪几个time?
  A atime
  B ctime
  C mtime
  D 三个都会改
  正确答案:B,C
  

  

  例子:
  sudo find /etc -size +1M -exec echo {} \;
  #在/etc目录下找文件大小在1M以上的文件并且显示,文件用换行符隔开。
  sudo find /etc -size +1M | xargs echo
  #达到-exec相同的功能但是用空格分开寻找到的文件。
  #-exec后面的{} \;是不能少的。
  find 紧跟的是指定开始寻找的绝对路径,我取当前路径。
  find ./ -user 用户名
  #find后面接的是开始寻找路径名,它会在这个路径下递归寻找。
  #-user 指定用户名
  find ./ -not -user 用户名
  find ./ -not -name 文件名
  find ./ -not -type 类型(一般文件f,目录d,字符文件c)
  #寻找不匹配的文件。
  find ./ -user 用户名 -o -type f
  #寻找当前目录下用户你指定用户文件或者(-o)一般文件。
  find ./ -size +1M -o -type d
  #寻找当前目录下文件大于1M的文件或者是目录。
  find ./ -size -1M -a -type f
  #寻找当前目录下文件小于1M并且文件类型是一般文件的文件。
  -o 是或者的意思
  -a 是而且的意思
  -not 是相反的意思
  根据上面再从find的寻找方式中任意组合你乐意的方式。
  find /etc -not -perm mode(222)
  find /etc -not -perm -mode(-222)
  find /etc -not -perm +mode(+222)
  #-perm是按文件权限来查找文件
  mode是完全匹配所对应的权限,如果不包括suid/sgid/sticky
  -mode是权限位转化为二进制之后的1必须全部匹配,+mode则需要其中任何一个1被匹配。
  -mode应该包含mode,+mode则包含-mode。
  
页: [1]
查看完整版本: Linux find 等查看文件