使用“find”命令 搜索文件里的文本 使用“locate”命令
find命令是最基础和常用的搜索命令。它可以在当前路径和任意子目录中搜索文件。  find -iname "文件名"   用-iname来代替-name，忽略文件名的大小写。-name命令区分大小写。 如果想要搜索整个系统，可以添加/来修改命令。这样，find命令会搜索所有路径，从根目录开始搜索文件。  find / -iname "文件名"    用具体的目录路径来代替/，可以搜索特定路径里的文件，如/home/pat。 你可以用.来代替/，这样就能在当前路径和子目录下强制搜索文件。 如果你不知道文件全名，或想要查找带有特定扩展名的所有文件，可以使用通配符*。  find /home/pat -iname "*.conf"    这样会在“Pat”用户文件夹（所有子目录）中找到所有.conf文件。 你也可以用它来查找所有匹配部分文件名的文件。例如，如果你有很多wikiHow相关的文档，可以输入"*wiki*"来找到它们。 如果获得很多搜索结果，就很难细查筛选文件。使用|字符，将搜索结果发送到“less”筛选程序。这样你就可以更简单地浏览和筛选搜索结果。  find /home/pat -iname "*.conf" | less 你可以使用修饰符来返回特定类型的结果。你可以使用f搜索常规文件，用d搜索路径，用l搜索符号链接文件，用c搜索字符设备，用b屏蔽设备。  find / -type f -iname "文件名" 如果很多文件的名称相似，但是你知道目标文件的大小，可以使用文件大小进行过滤。  find / -size +50M -iname "文件名"    上述命令会返回大于等于50MB的文件。你可以使用+或-来搜索更大或更小的文件。如果没有加+或-字符，就会只搜索特定大小的文件。 你可以使用字节（c）、千字节（k）、兆字节（M）、千兆字节（G）或512字节块（b）来进行筛选。记住，这些文件大小命令是区分大小写的。 使用-and、-or和-not操作符来整合不同类型的搜索条件。  find /travelphotos -type f -size +200k -not -iname "*2015*"   这个命令会在“travelphotos”目录里查找大于200KB，文件名里不包含“2015”的所有文件。 如果你想要查找特定用户的文件，或是带有特定权限的文件，可以根据此来缩窄搜索条件。  find / -user pat -iname "文件名" find / -group users -iname "文件名" find / -perm 777 -iname "文件名"   以上命令会搜索特定用户、群组或权限的文件。你可以忽略文件名，返回所有匹配条件的文件。如：find / -perm 777会返回所有带有777权限的文件（无限制条件）。 你可以将find命令和其它命令整合到一起，这样在返回搜索结果时，执行命令。用-exec来隔开find命令和第二个命令，然后结尾用{} \;字符。  find . -type f -perm 777 -exec chmod 755 {} \;   这样会在当前路径和所有子目录里搜索带有777权限的文件。找到文件后，chmod命令会将权限更改为755。 如果你想要在文件里找到特定的短语或字符串，可以使用grep命令。基本的grep命令格式如下：   grep -r -i "搜索词" /路径     -r将搜索设置为“递归”，这样它会在当前路径和所有子目录下搜索特定字符串。  -i说明搜索条件不区分大小写。如果想要强制区分大小写，请删除 -i。 当你执行上面的grep搜索时，你会看到匹配搜索的文本被高亮标记出来。你可以使用下面的命令隐藏匹配的文本，直显示文件名和路径：  grep -r -i "搜索词" /路径 | cut -d: -f1 如果尝试进入没有正确权限的文件夹，或进入空文件夹后，用grep命令返回错误信息。你可以将错误信息发送到 /dev/null，在输出结果里隐藏它们。  grep -r -i "搜索词" /路径 2>/dev/null 由于locate命令能够读取数据库文件的结构，所以，它通常比find命令速度更快。但是，不是所有版本的Linux系统都安装了locate功能，你可能需要输入以下命令来安装它：  输入sudo apt-get update，按下回车键。 你可以在“Debian”和乌班图系统里安装它：输入sudo apt-get install mlocate，按下回车键。如果已经安装了locate，那么会看到mlocate is already the newest version的信息。 在“Arch Linux”系统里，使用“pacman”安装包管理器：pacman -Syu mlocate  在“Gentoo”系统里，使用“emerge”：emerge mlocate 除非建立并更新数据库，否则locate命令无法找到任何内容。一般来说，系统每天会自动更新数据库，但是你也可以手动更新它。如果你想要立刻使用locate命令，那就需要手动更新。 输入sudo updatedb，按下回车键。 locate命令的运行速度很快，但是没有find命令那么多选项。你可以用它来执行简单的文件搜索，基本的搜索方式与find命令相同。  locate -i "*.jpg"    这个命令会搜索整个系统，找到带.jpg后缀的文件。通配符*与find命令里的通配符功能一致。 跟find命令类似，-i会忽略搜索条件里的大小写。 如果返回过多搜索结果，处理不过来，你可以使用-n选项来限制搜索。在选项里输入数字，就会限制出现的搜索结果数量。  locate -n 20 -i "*.jpg"    只显示匹配搜索条件的前20个结果。 你也可以使用|来将结果发送到less程序。
根据文件名搜索文件。 设置搜索条件，从根目录开始搜索。 使用通配符.* 搜索任何匹配搜索条件的文件。 让你的搜索结果更方便管理。 找到特定类型的结果。 根据大小过滤搜索结果。 使用布尔操作符来整合搜索过滤。 根据用户或权限搜索文件。 将执行命令整合到搜索文件中。 使用.grep 命令搜索文件里的文本串。 去掉多余的文本。 隐藏错误信息。 安装.locate 功能。 更新.locate 数据库。 使用.locate 命令进行简单的搜索。 限制搜索条件。
https://www.wikihow.com/Find-a-File-in-Linux https://www.wikihow.com/Find-a-File-in-Linux https://www.wikihow.com/Find-a-File-in-Linux
Using "find" Searching for Text in Files Using "locate"