linux基础之find
linux上文件查找工具: locate, find
locate:
依赖于事先构建的索引,索引的构建在系统较为空闲时自动进行(周期性任务),手动更新数据库(updatedb)
索引构建过程需要遍历整个根文件系统,极其消耗资源
工作特点: 查找速度快
模糊查找
非实时查找
find:
实时查找工具,通过遍历指定路径下的文件系统完成文件查找
工作特点:
查找速度略慢
精确查找
实时查找
语法:
find [OPTION]... [查找路径] [查找条件] [处理动作]
查找路径: 指定具体目标路径,默认为当前目录
查找条件: 指定的查找标准,可以是文件名、大小、类型、权限等
处理动作: 多符合条件的文件做什么操作,默认输出至屏幕
查找条件:
根据文件名查找:
-name "文件名称" : 支持glob,*,?,[],[^]
-iname "文件名称" :不区分字母大小写
-regex "PATTERN": 以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称
根据属主、属组查找
-user USERNAME: 查找属主为指定用户的文件
-group GROUPNAME:查找属主为指定组的文件
-uid USERID: 查找属主为指定的UID号的文件
-gid GROUPID: 查找属组为指定的GID号的文件
-nouser: 查找没有属主的文件
-nogroup: 查找没有属组的文件
根据文件类型查找
-type TYPE:
f: 普通文件
d: 目录文件
l: 符号链接文件
s: 套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件
根据文件大小来查找
-size [+|-]#UNIT
常用单位:k, M, G
#UNIT: (#-1,#]
+#UNIT: [#,oo]
-#UNIT: (0,#-1)
根据时间戳
以"天"为单位:
-atime [+|-]#:
#: [#,#+1)
+#: [#+1,oo]
-#: (0,#)
-mtime, -ctime
以"分钟"为单位
-amin, -mmin, -cmin
根据权限查找
-perm [/|-]MODE
MODE: 精确权限匹配
/MODE: 任何一类(u,g,o)对象的权限中只要能一位匹配即可
-MODE: 每一类对象都必须同时拥有为其指定的权限
处理动作:
-print: 默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行"ls -l" 命令
-delete: 删除查找到的文件
-fls /path/to/somefile:查找到的所有文件的长格式信息保存至指定文件中
-ok COMMAND {} \; : 对查找到的每个文件执行由COMMAND指定的命令
对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; : 对查找都的每个文件执行由COMMAND指定的命令
{}: 用于引用查找到的文件名称自身
# find /tmp -nouser -exec chown {} root {} \;
注意: find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令,
有些命令不能接受过多的参数,此时命令执行可能会失败,另一种方式可规避此问题
# find | xargs COMMAND
练习:
1.查找/var目录下属主为root,且属组为mail的所有文件或目录
# find /var -user root -group mail
2.查找/usr目录下不属于root、bin或hadoop的所有文件或目录
# find /usr -not \( -user root -o -user bin -o -user hadoop \)
3.查找/etc目录下一周内其内容修改过,同时属主不为root,也不是hadoop的文件或目录
# find /etc -not -user root -a -not -user hadoop -mtime -7
4.查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件
# find / -nouser -nogroup -atime -7
5.查找/etc目录下大于1M且类型为普通文件的所有文件
# find /etc -size +1M -type f
6.查找/etc目录下所有用户都没有写权限的文件
# find /etc -not -perm \222
7.查找/etc目录下至少有一类用户没有执行权限的文件
# find /etc -not -perm -222
8.查找/etc/init.d目录下,所有用户都有执行权限,且其他用户有写权限的目录
# find /etc/init.d -perm -113
linux基础之find的更多相关文章
- Linux基础练习题(二)
Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...
- 大数据每日干货第四天(linux基础之一目录结构与常用命令)
为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...
- Linux课程实践一:Linux基础实践(SSH)
一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...
- 还是不想改报告,伊阿忆啊哟-Linux基础继续
hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...
- 原来今天是感恩节-Linux基础继续&MySQL和PHP
hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...
- 买错的电影票,含着泪也得看-LAMP搭建&Linux基础
hi 没说过,上周五室友过生请客,在龙湖里吃嗨了喝爽了,回去的路上侃侃而谈.说好的这周一起去看年内最后的大片,火星救援的,谁知道老子眼神不好,买错了电影的时间...把周六的约定提前到了今儿个下午,ma ...
- Linux基础3(文件权限)
文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...
- Linux课程实践一:Linux基础实践(基础操作)
一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...
- 实践一:Linux基础实践
一.Linux基础实践 1.1 1. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...
- Linux基础精华
Linux基础精华 (继续跟新中...) 常用命令: Linux shell 环境 让你提升命令行效 率的 Bash 快捷键 [完整版] 设置你自己的liux alias Linux的Find使用 L ...
随机推荐
- laravel的csrf token 的了解及使用
之前在项目中因为没有弄清楚csrf token的使用,导致发请求的话,一直请求失败,今天就一起来看一下csrf的一些东西. 1.Cross-site request forgery 跨站请求伪造,也被 ...
- 【漏洞复现】Tomcat CVE-2017-12615 远程代码执行漏洞
漏洞描述 [漏洞预警]Tomcat CVE-2017-12615远程代码执行漏洞/CVE-2017-12616信息泄漏 https://www.secfree.com/article-395.html ...
- SQL特殊字符转义
原文链接: SQL特殊字符转义 应 该说,您即使没有处理 HTML 或 JavaScript 的特殊字符,也不会带来灾难性的后果,但是如果不在动态构造 SQL 语句时对变量中特殊字符进行处理,将可能导 ...
- ZOJ 4067 - Books - [贪心][2018 ACM-ICPC Asia Qingdao Regional Problem J]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4067 题意: 给出 $n$ 本书(编号 $1 \sim n$), ...
- DOS的重定向命令及在安全方面的应用
dos的重定向命令 2006-10-15 16:47 新手DOS应用技巧人小鬼大 重定向命令在安全方面的应用来源:ChinaITLab收集整理2005-7-21 11:12:00 大家知道,DOS下有 ...
- python练习题-day14
一.选择题 1. python不支持的数据类型有:A. charB. intC. floatD. list ans:A 2.x = ‘foo’y = 2print(x + y) A. fooB. fo ...
- git常用操作命令使用说明
设置用户名和邮箱 git config --global user.email 'xxx' git config --global user.name 'xxx' 创建分支 git branch xx ...
- 020-并发编程-java.util.concurrent之-jdk6/7/8中ConcurrentHashMap、HashMap分析
一.概述 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表. 是根据关键码值(Key ...
- java框架之Struts2(1)-简介及入门
简介 Struts2 是一个基于 MVC 设计模式的 Web 应用框架,它本质上相当于一个 servlet,在 MVC 设计模式中,Struts2 作为控制器 (Controller) 来建立模型与视 ...
- 20175211 2018-2019-2 《Java程序设计》第二周学习总结
目录 教材学习内容总结 第二章 第三章 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错题总结 其他(感悟.思考等,可选) 学习进度条 参考资料 教材学习内容总结 第二章 ...