通过优锐课的java构架专题分享学习中,了解到了Linux查找命令教程(包含示例)。码了好多专业的知识点,整理后分享给你们参考学习。非常是其中的构架思维导图很有参考性,在提高的知友们可以好好巩固一番!

系统上查找文件或目录时,Linux上的find命令无与伦比。它使用简单,但具有许多不同的选项,可让你微调对文件的搜索。

继续阅读以查看怎样使用此命令在系统上查找任何内容的示例。一旦你晓得怎样在Linux中使用find命令,每位文件都只需轻敲几下。

1、查找目录

你可以告诉find命令专门针对带有-typed选项的目录。这将使find命令仅搜索匹配的目录名,而不搜索文件名。

Shell
$ find /path/to/search -type d -name "name-of-dir"

linux命令查看db2版本_命令行查看linux版本_linux查看版本号命令

2、查找隐藏文件

因为Linux中的隐藏文件和目录以句点开头linux命令查看db2版本,因而我们可以在搜索字符串食指定此搜索模式,便于递归列举隐藏文件和目录。

Shell
$ find /path/to/search -name ".*"

3、查找特定大小或小于X的文件

find上的size选项容许我们搜索特定大小的文件。它可用于查找准确大小的文件,小于或大于特定大小的文件或适宜指定大小范围的文件。以下是一些示例。

搜索小于10MB的文件:

linux命令查看db2版本_命令行查看linux版本_linux查看版本号命令

Shell
$ find /path/to/search -size +10M

搜索大于10MB的文件:

Shell
$ find /path/to/search -size -10M

搜索大小刚好为10MB的文件:

Shell
$ find /path/to/search -size 10M

搜索大小在100MB到1GB之间的文件:

Shell
 $ find /path/to/search -size +100M -size -1G

4、从文件列表中查找

假如你有须要搜索的文件列表(比如,在.txt文件中)linux基础教程,则可以使用find和grep命令的组合来搜索文件列表。为了使此命令起作用,只需确保要搜索的每位模式都用换行符隔开。

Shell
$ find /path/to/search | grep -f filelist.txt

grep的-f选项表示“文件”,并容许我们指定要匹配的字符串文件。这引起find命令返回与列表中的文件或目录名称匹配的任何文件或目录名称。

linux命令查看db2版本_linux查看版本号命令_命令行查看linux版本

5、查找不在列表中

使用我们在上一个示例中提及的相同文件列表,你还可以使用find搜索与文本文件内的模式不匹配的任何文件。再一次,我们将结合使用find和grep命令;我们只须要用grep指定一个附加选项:

Shell
$ find /path/to/search | grep -vf filelist.txt

grep的-v选项表示“逆向匹配”长春linux培训,将返回与文件列表手指定的任何模式都不匹配的文件列表。

6、设置最大深度

find命令默认将进行递归搜索。这意味着它将在指定的目录中搜索你指定的模式,以及你告诉它要搜索的目录中的所有子目录。

比如,假如告诉find搜索Linux(/)的根目录,则无论存在多少个子目录,它就会搜索整个硬碟。你可以使用-maxdepth选项来防止这些行为。

在-maxdepth以后指定一个数字以指示查找应递归搜索的子目录数。

仅在当前目录中搜索文件,而不递归搜索:

Shell
$ find . -maxdepth 0 -name "myfile.txt"

仅在当前目录和更深的一个子目录中搜索文件:

Shell
$ find . -maxdepth 1 -name "myfile.txt"

7、查找空文件(零厚度)

要使用find搜索空文件,可以使用-empty标志。搜索所有空文件:

Shell
$ find /path/to/search -type f -empty

搜索所有空目录:

Shell
$ find /path/to/search -type d -empty

假如要手动删掉find返回的空文件或目录,将此命令与-delete选项结合使用也十分便捷。

删掉目录(和子目录)中的所有空文件:

Shell
$ find /path/to/search -type f -empty -delete

8、查找最大的目录或文件

假如你想快速确定系统上什么文件或目录占用最多的空间,则可以使用find进行递归搜索,并按文件和/或目录的大小输出排序的列表。怎么显示目录中最大的文件:

命令行查看linux版本_linux命令查看db2版本_linux查看版本号命令

Shell
$ find /path/to/search -type f -printf "%st%pn" | sort -n | tail -1

请注意,find命令已被分类为另外两个便捷的Linux实用程序:sort和tail。Sort将按文件的大小次序排列文件列表,而tail将仅输出列表中的最后一个文件,该文件也是最大的。

假如要输出诸如最大的前五个文件,可以调整tail命令:

Shell
$ find /path/to/search -type f -printf "%st%pn" | sort -n | tail -5

或则,你可以使用head命令来确定最小的文件:

Shell
$ find /path/to/search -type f -printf "%st%pn" | sort -n | head -5

假如要搜索目录而不是文件,只需在类型选项手指定“d”。怎么显示最大目录:

Shell
$ find /path/to/search -type d -printf "%st%pn" | sort -n | tail -1

9、查找setuid设置文件

是“在执行时设置用户ID''的简写,它是一种文件权限,容许普通用户以提高的权限(比如root)运行程序。

出于显著的缘由,这可能是安全问题,并且可以使用find命令和一些选项轻松隔离那些文件。

find命令有两个选项可帮助我们搜索具有特定权限的文件:-user和-perm。要查找普通用户就能以root特权执行的文件,可以使用以下命令:

Shell
$ find /path/to/search -user root -perm /4000

linux查看版本号命令_命令行查看linux版本_linux命令查看db2版本

在前面的屏幕截图中,我们包含了-exec选项,便于显示有关查找返回文件的更多输出。整个命令如下所示:

Shell
$ find /path/to/search -user root -perm /4000 -exec ls -l {} ;

你也可以在此命令中用“root”代替要作为所有者搜索的任何其他用户。或则,你可以搜索具有SUID权限的所有文件,而根本不指定用户:

Shell
$ find /path/to/search -perm /4000

在前面的屏幕截图中,我们包含了-exec选项,便于显示有关查找返回文件的更多输出。整个命令如下所示:

Shell
$ find /path/to/search -user root -perm /4000 -exec ls -l {} ;

你也可以在此命令中用“root”代替要作为所有者搜索的任何其他用户。或则,你可以搜索具有SUID权限的所有文件,而根本不指定用户:

Shell
$ find /path/to/search -perm /4000

文章先更到这儿linux命令查看db2版本,下本部份会抓紧码上来。

感兴趣的同学们欢迎点赞,关注我及我的专栏,第一时间收到更新推送!

每晚分享技术干货,职场轶事!一上去说构架这些事--优锐课

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复