Linux文件管理类命令之find

简介:

find 查找文件
这个命令的方式是通过翻书的方式查找,而且是精确匹配查找,所以速度要慢一点。
Linux文件管理类命令之find
/etc/ 是指定查找范围
-name 是查找方法,以文件名查找
passwd 是包含该字符的文件
而且find的查找是查找基名(文件名)
-name "keywords"通过文件名查找
-iname "keywords" 通过文件名查找,但是不区分大小写
Linux文件管理类命令之find
find 支持glob风格的通配符 *(任意字符) ?(单个字符) ^
Linux文件管理类命令之find
-user 按照用户来查找文件
Linux文件管理类命令之find
如何去验证这些被查到的文件呢?稍后再讲
-group 按照组名查找文件
Linux文件管理类命令之find
-uid 根据UID查找文件
Linux文件管理类命令之find
-nouser 查看没有属主的文件
Linux文件管理类命令之find
-nogroup 查看没有属组的文件
Linux文件管理类命令之find
-type 根据文件类型查找文件
文件类型有f 普通文件 b 块设备文件 c字符设备文件 s套接字设备文件 l符号链接文件 d目录文件 p管道文件
Linux文件管理类命令之find
Linux文件管理类命令之find
根据文件大小查找文件
这里要说下,命令中文件大小的默认单位是k 可以指定M 或者 G,-size 有两个选项 +和-
+大于命令中的参数,比如1M,那么命令是寻找大于1M以上的文件
-小于命令中的参数,比如1M,那么命令是寻找小于1M的文件
举例说明,参数为175M,不加任何选项的情况下,查找范围为(174,175]。
+号的查找范围(175,无限大)
-号的查找范围(0,174]
Linux文件管理类命令之find
Linux文件管理类命令之find
根据时间戳 查找文件
atime 访问时间 以天为单位
mtime 修改时间 以天为单位
ctime 更改时间 以天为单位
这里注意时间没有将来时。
这些参数也有+和-两个选项
举例:前三天被访问的文件 就只写3 意思就是(-3.9,-3] 不能到前4天
+3 表示至少3天没有被访问的文件 就是从远古到前4天(远古,-4),应为3.9天就算前3天了
-3 表示至多3天没有被访问的文件 就是从前2.9天到现在
针对a c m时间还有 以分钟为单位 -cmin -amin
Linux文件管理类命令之find
一天前被访问的文件
Linux文件管理类命令之find
Linux文件管理类命令之find
还可以根据权限来查找文件
-perm 也有两个选项 / 和 - 
/的意思是只要属组,属主和其他用户权限有一组权限匹配就算匹配文件
Linux文件管理类命令之find
因为所有文件的属主的权限是6,所以尽管其他权限不匹配也不计较
Linux文件管理类命令之find
如果需要精确匹配,就需要使用-的选项了
Linux文件管理类命令之find
Linux文件管理类命令之find
只有shanghai的权限满足寻找条件。
综上所述,权限匹配,就是说只要可以满足寻找条件,其他权限可以忽视。按照上面的演示效果来看,shanghai的权限是777 属主、属组和其他用户的权限都只要有rw就行了,至于x的权限,寻找文件时不考虑。
现在讲一个特殊的匹配条件002,这个表示属主和属组的权限不考虑,只考虑其他用户的写权限。
处理动作
-ls 列出明细
Linux文件管理类命令之find
将匹配的文件进行ls的操作
-print 输出至标准输出,这个也是默认选项
-delete:删除匹配到的文件 这个动作很危险
-fls 将查找到文件的详细信息输出到指定文件中
Linux文件管理类命令之find
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND表示的命令 每次操作都有提问 
Linux文件管理类命令之find
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND表示的命令 ,这个没有提问
Linux文件管理类命令之find
说一下{}的作用,{} 代表匹配到的文件名
Linux文件管理类命令之find
Linux文件管理类命令之find
注意:find + 命令 的方式是先查找出所有符合条件的文件路径,再一次性传递给后面的命令,但有些命令不能接受过长的参数,此时命令执行会失败,xargs会解决这类问题。
find xxxsss | xargs xss 
Linux文件管理类命令之find

这里有一个练习:
查找/usr目录下不属于root ,bin的所有文件或目录,用两种方法
Linux文件管理类命令之find
Linux文件管理类命令之find
这个练习注意两个点:1、查询条件之间默认是与的关系 两个条件必须都满足 2、如果在命令中有括号需要转义。

还有一个练习:
查找/etc目录下所有用户都没有写权限的文件
这个需要仔细品味哈,所有用户都没有写权限,怎么写? ! -perm -222 这个写法被验证是错误的。
为什么?-perm -222 是所有用户都有写权限 前面加一个! 就是至少有一个用户没有写权限,那么这个匹配条件就错了。
应该这么写,至少有一个用户有写权限,再非一下,就是所有用户都没有写权限
Linux文件管理类命令之find
这样才对

关于查询条件,两个及两个以上的条件之间,默认是且/与的关系。
-a 就是且 或者 与的关系
-o 就是或的关系
!就是非的关系
条件之间的常用公式是:
!A –a !B=!(A –o B)
!A –o !B=!(A –a B)



本文转自 yueyue207 51CTO博客,原文链接:http://blog.51cto.com/yueyue207/2049206

相关文章
|
2月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
607 13
|
2月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
298 13
|
3月前
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
394 21
|
3月前
|
JSON 自然语言处理 Linux
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
linux命令—tree
|
1月前
|
监控 Linux Shell
linux命令
常用 Linux 命令汇总
|
3月前
|
监控 Linux
Linux系统中使用df命令详解磁盘使用情况。
`df`命令是Linux系统管理员和用户监控和管理磁盘空间使用的重要工具。掌握它的基本使用方法和选项可以帮助在必要时分析和解决空间相关问题。简洁但功能丰富,`df`命令确保了用户可以快速有效地识别和管理文件系统的空间使用情况。
206 13
|
3月前
|
Linux
Linux命令拓展:为cp和mv添加进度显示
好了,就这样,让你的Linux复制体验充满乐趣吧!记住,每一个冷冰冰的命令背后,都有方法让它变得热情起来。
223 8
|
2月前
|
Linux C++
每天一个linux命令(8):cp 命令
cp 命令是 Linux 中用于复制文件或目录的命令。它的名字来源于英文单词 copy。这个命令非常常用,特别是在需要备份文件或创建文件副本时。
66 0
|
3月前
|
安全 Linux 定位技术
Linux环境下必备的基础命令概览
以上就是Linux系统中的基本命令和工具,掌握它们就能帮你在Linux世界里游刃有余。这其实就像是学习驾驭一辆新车,熟悉了仪表盘,调整好了座椅,之后的旅程就只需要享受风驰电掣的乐趣了。
82 4
|
Linux 索引
linux命令—ls
`ls` 是 Linux 系统中用于列出目录内容的基础命令,功能强大且使用频率极高。它可以帮助用户查看文件、分析磁盘空间及检查权限等。常用选项如 `-l` 显示详细信息,`-a` 包含隐藏文件,`-h` 以易读格式展示大小,`-t` 按修改时间排序等。通过组合选项,可实现复杂需求,如递归遍历目录(`-R`)、显示 inode 号(`-i`)或结合正则过滤特定文件。注意权限限制、特殊字符处理及大规模目录操作可能带来的性能问题。掌握 `ls` 是高效使用 Linux 的关键一步。