2023年7月26日发(作者:)
Shell⽂件查找之find命令(1) ⽇常⼯作中常⽤到脚本,像数据备份、数据压缩等等这样⼀些脚本。 find命令的优点:条件⽐较多应⽤场景⼴范,缺点:效率⽐较低,速度⽐较慢。1、⽂件查找之find命令 (1) 语法格式: find [路径] [选项] [操作] 1). 路径:可以写相对路径,也可以写绝对路径。 2). 选项参数对照表: [1] -name :根据⽂件名查找 [2] -perm :根据⽂件权限查找,如权限777,通常是⼀个数字 [3] -prune :该选项可以排除某些查找⽬录 [4] -user :根据⽂件属主查找 [5] -group :根据⽂件属组查找 [6] -mtime -n | +n :根据⽂件更改时间查找,n是以天为单位计算的 [7] -mmin -n | +n :根据⽂件更改时间查找,n是以分钟为单位计算的 [8] -nogroup:查找⽆有效属组的⽂件,⽐如添加某⼀个⽤户,在这个⽤户产出很多⽂件,有⼀天你这个⽤户名被删除掉了,剩下的⽂件就是没有有效属组⽂件。 [9] -nouser:查找⽆有效属主的⽂件 [10] -newer file1 ! file2:查找更改时间⽐file1新但⽐file2旧IDE⽂件,正确shell使⽤格式:find . -newer file1 ! ( -newer file2),点,空格,转义,缺⼀不可,否则都会报错。 [11] -type:按⽂件类型查找 [12] -size -n +n:按⽂件⼤⼩查找 [13] -mindepth n:从n级⼦⽬录开始搜索 [14] -maxdepth n:最多搜索到n级⼦⽬录 3). 操作: [1] -print: 打印输出 [2] -exec: 对搜索到⽂件执⾏特定的操作,格式为:【-exec 'command' {} ;】,command表⽰要执⾏的命令,{}⼀对⼤括号表⽰匹配前⾯搜索到结果,“;”反斜杠分号固定写法。
例⼦1: 搜索/etc下的⽂件(⾮⽬录),⽂件名以conf结尾,且⼤于10k,然后将其删除 find ./etc/ -type f -name '*.conf' -size +10k -exec rm -f {} ;例⼦2: 将/var/log/⽬录下以log结尾的⽂件,且更改时间在7天以上的删除 find /var/log/ -name '*.log' -mtime +7 -exec rm -rf {} ;例⼦3: 搜索条件和例⼦1⼀样,只是不删除,⽽是将其复制到/root/conf/⽬录下 find ./etc -size +10k -type f -name '*.conf' -exec cp {} ./test_5/ ; [3] -ok: 和exec功能⼀样,只是每次操作都会给⽤户提⽰。4).逻辑运算符: -a 与 -o 或 -not | ! ⾮
例⼦1:查找当前⽬录下,属主不是hdfs的所有⽂件 find . -not -user hdfs | find . ! -user hdfs例⼦2:查找当前⽬录下,属主属于hdfs,且⼤⼩⼤于300字节的⽂件 find . -type f -a -user hdfs -a -size +300c例⼦3:查找当前⽬录下的属主为hdfs 或者以 xml 结尾的普通⽂件 find . -type f -a ( -user hdfs -o -name '*.xml' )
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690361090a337789.html
评论列表(0条)