当然,发展到现在的Linux 文件系统已经被良好地组织起来了。
不过呢,海量的文件往往会引起一些可怕的问题。
作为一名LINUX 运维人员,每天面对着这些 linux 系统实际生产环境,必须有过硬的技术能力和良好的心理素质才能胜任。
在今天这篇文章中,我们将介绍2 个用来查找文件的工具。
命令locate , updatedb , find 和 xargs 都是 GNU 项目 findutils 软件包的一部分。
这个GUN 项目提供了大量的在线文档,这些文档相当出色,如果你在高安全性的环境中使用这些程序,你应该读读相关文档。
当然,在编写这篇文章过程中我还参考了 这本书,内容很贴近实践,很有理论指导实践价值的一本书籍。
GNU 查找实用程序是 GNU *** 作系统的基本目录搜索实用程序。
这些程序通常与其他程序结合使用,以便向其他命令提供模块化和强大的目录搜索和文件定位功能。
此包随附的工具包括:Find — search for files in a directory hierarchy// 在目录层次结构中搜索文件locate –list files in databases that match a pattern// 列出与模式匹配的数据库中的文件updatedb — update a file name database// 更新文件名数据库xargs — build and execute command lines from standard input// 从标准输入生成和执行命令行find 程序搜索目录树以查找文件或文件组。
它遍历目录树并报告与用户规范匹配的文件的所有出现。
find 程序包括非常强大的搜索功能。
locate 程序扫描一个或多个文件名数据库并显示任何匹配项。
如果文件存在于上一个文件名数据库更新期间,这可用作非常快速的查找命令。
updatedb 程序更新定位程序使用的文件名数据库。
文件名数据库包含上次更新数据库时在特定目录树中的文件列表。
这通常每晚由 cron 系统守护程序运行。
xargs 程序通过收集它在标准输入上读取的参数来生成和执行命令行。
大多数情况下,这些参数是由 find 生成的文件名列表。
下面是一个示例 *** 作,使子目录docs 中的所有类HTML 文件由所有使用 find 和 xargs 的可读性。
这是一个典型的示例,说明 Find 和 xarg 如何与其他实用程序一起使用,以提供强大的目录遍历功能。
[centos@linux ~]$ find docs -name ‘*.html’ -print0 | xargs -0 chmod a+r查找文件的简单方法– locateLocate 命令会执行一次快速的路径名数据库搜索程序,同时输出每个与给定子字符串相匹配的路径名称。
例如:我们想要找到“test/” 目录下所有以“zip” 开头的程序名称。
接下来,我们可以以这种方式使用 locate 命令,用来找到我们想要的文件:[me@linux ~]$ locate test/ziplocate 命令将会搜索它的路径名数据库,输出任一个包含字符串“tset/zip” 的路径名:114/usr/test/zip/usr/test/zipinfo/usr/test/zipgrep复杂点的话, locate 可以结合其它工具,比如说 grep 命令,来设计更加有趣的搜索方式:[Centos@Linux ~]$ locate zip | grep test/test/bunzip2/test/bzip2/test/gzip/usr/test/unzip/usr/test/unzipsfx/usr/test/zip/usr/test/zipgrep/usr/test/zipinfo查找文件的复杂方式–findlocate 程序有一个缺陷是只能依据文件名来查找文件,而 find 程序支持基于各种各样的属性搜索一个给定目录或者它的子目录,来执行查找文件程序。
本人建议要花费大量的时间去学习 find 命令,因为它有许多有趣的特性,很有意思的。
比较简单的应用方式中, find 命令可接收一个或多个目录名称来执行搜索程序。
例如,输出我们的家目录的路径名列表:[Centos@linux ~]$ find ~对于一个比较活跃的用户帐号,这条命令将会产生一张很大的列表。
避免查看不方便的现象,我们可以把这个列表通过管道符号输出到其它的程序中。
例如:使用 wc 程序来计算出文件的数量:[Centos@ ~]$ find ~ | wc -l10029通过find 命令用来找到符合特定标准的文件,这就是它的魅力所在。
个人总结了些find 命令选项,这些选项被用作配合find 命令限定一定的搜索范围。
每当构建 find 表达式的时候,这些选型可能会被其它的测试条件和行为包含或者覆盖。
常见选项的列表:选型描述-depth指示 find 程序先处理目录中的文件,再处理目录自身。
当指定-delete 行为时,会自动应用这个选项。
-maxdepth levels当执行测试条件和行为的时候,设置 find 程序陷入目录树的最大级别数-mindepth levels在应用测试条件和行为之前,设置 find 程序陷入目录数的最小级别数。
-mount指示 find 程序不要搜索挂载到其它文件系统上的目录。
-noleaf指示 find 程序不要基于自己在搜索 Unix 的文件系统的假设,来优化它的搜索。
在搜索 DOS/Windows 文件系统和CD/ROMS 的时候,我们需要这个选项来源:ITPUB博客
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)