如何在Linux命令行中查找文件?2025年3月17日 | 阅读 7 分钟 不用说,所有优秀的Linux桌面环境都提供了查找文件系统中的文件夹和文件的能力。如果我们的默认桌面没有——因为它是Linux——我们总可以找一个应用程序来搜索我们的目录层次结构。 但是终端或命令行呢?如果我们经常在终端窗口工作,或者我们管理无GUI的Linux服务器,当我们想找一个文件时,我们该怎么办?幸运的是,Linux内置了我们所需要的工具来查找相关文件。 这个命令是find。一旦我们知道了它,我们就可以开始将这个命令应用到我们的Bash脚本中,以使其更具吸引力。让我们从find命令开始,这样我们就可以在不需要GUI的情况下控制在Linux桌面和服务器上查找文件。 Linux中find命令的使用如果我们是Linux用户,我们就不能仅仅依赖GUI来执行许多任务。因此,熟练掌握终端命令非常重要。每个基于Linux的发行版都执行命令来执行不同的管理任务。 即使Linux终端可以被定义为一个看起来复杂的文本界面,但它实际上非常易于使用、灵活且非常实用的工具。命令可以很容易地从任何在线来源复制并粘贴到终端中执行多个操作。有数百个命令,但本文我们将重点关注find命令。find命令用于根据用户指定的条件在我们的系统中搜索、过滤或查找文件夹和文件,并对它们执行许多操作。 让我们看看如何使用find命令,它的语法以及该命令实现的许多操作。 Linux中Find命令的语法 find命令的语法如下所示: 上述语法的三个属性将在下面解释
上面的每个属性都是可选的,因为它可以根据需要应用。 按名称查找文件我们可以使用以下命令按名称查找文件: ![]() 在find之后,命令中的点表示当前目录。如果我们不记得确切的文件名,可以通过使用"iname"而不是"name"来使搜索过程更精确且不区分大小写。 按类型查找文件我们可以使用"-type"标志以及也称为描述符的字母,如"s"表示套接字,"I"表示符号链接,"d"表示目录,"f"表示文件,来按类型查找文件。 要查找所有目录,我们可以使用以下命令: ![]() 要查找文件,我们可以使用以下命令: ![]() 按文件扩展名查找文件要按模式查找文件,例如文件扩展名,如显示所有使用.txt的文件,我们可以使用以下命令: ![]() 带.txt,将显示所有文件及其相关目录。 查找并删除文件要查找并删除文件,我们可以使用以下命令: ![]() 首先,上面的命令会找到文件,然后删除它。 要删除所有扩展名为.txt的文件,我们可以使用以下附加命令: 按大小查找文件此外,find命令还可以按大小查找文件。我们可以简单地使用"-size"选项以及描述符,如"G"表示千兆字节,"M"表示兆字节,"k"表示千字节,"c"表示字节,"b"表示512kb块。 ![]() 上述命令查找大小小于1024字节的任何文件。这个搜索过程可以进一步细化。例如,如果我们想查找所有小于1 MB的文件,我们可以使用以下命令: ![]() 对于所有大于1的 ![]() 另外,可以使用以下附加命令定义大小范围: 按权限查找文件我们可以使用"-perm"和权限码按权限查找文件。命令如下: ![]() 在文本文件中查找文本我们可以使用以下命令在系统上的两个或多个文本文件中搜索文本: ![]() 上面的命令正在查找文本文件中的“Hello”。结果是包含“Hello”的文本文件中的文本字符串。 按修改时间和日期查找文件我们可以使用以下命令按最后修改时间查找文件: ![]() 该命令查找4分钟前最后修改的文件,其中“-mmin”中的“m”代表“Modification”(修改)。 ![]() 该命令查找4分钟前最后访问的文件,其中“a”代表“Access”(访问)。我们可以使用“-mtime +4”而不是“mmin +4”来使用4天前被修改过的文件。 如何在Linux中查找文件?文件系统是任何操作系统的一个主要组成部分,因为它以不同的格式存储所有数据在文件夹和文件中。在本文中,我们将解释一些用于搜索文件的命令。 技术 1:Locate让我们从最常用的指令locate开始,用于从我们的系统搜索文件。"locate"指令的"-c"标志主要用于获取系统中特定文件的计数。让我们从使用“new.sh”文件名在指令下的第一个“-c”选项开始。它将返回5个同名文件。 这是“locate”指令的“-n”选项,用于根据用户的选择在终端窗口中显示特定文件的记录。我们需要在命令中指定数字来显示文件记录。当我们使用“-n”选项和值1运行指令时,它将显示“new.sh”文件在主目录中的一个记录。它将返回一个文件路径。此路径将附加到我们的根目录或主目录。 当我们使用带有更新的数字“3”的“-n”选项运行此指令来显示“new.sh”文件的搜索输出时,它将在我们的shell窗口中返回总共3条记录。它还表明该文件位于Trash(回收站)文件夹中。 我们在执行带有“-n”选项且值为5的“locate”命令时,为“new.sh”文件收到了5条搜索记录。在我们的目录中还有另一个名为“new.sh.swp”的文件。在Ubuntu文件系统的“var”目录中有一个确切的文件名。 在“locate”指令中,“-b”选项可以从我们的目录中搜索相同的文件名。因此,我们需要将其与一个反引号中的文件名一起运行。它提供了3条记录,因为确切的文件名只位于3个位置。 此外,Linux的“locate”指令还可以用于获取有关我们当前数据库的信息。我们需要使用“-S”标志,它将给出数据库路径、我们系统上的文件和目录总数、保存我们记录的字节数以及文件名中的字节数。 技术 2:Find“find”指令可用于在我们的Linux系统中查找任何特定文件。此外,它还附带了几个选项来显示不同的结果。第一个选项是“-name”,用于在双反引号中使用文件名查找文件。我们可以将此选项与几个目录的路径一起使用来查找文件。如果我们不想使用路径,可以将其保留为“.”符号。它将显示3条确切的文件名记录。 此外,我们可以利用显式路径来检查其中的文件。例如: 假设我们想查找文件“.sh”扩展名的符号链接文件;我们需要在命令中使用“-L”标志、“-name”选项和路径。在名称规范中,“*”符号用于查找所有带有“.sh”扩展名的bash文件。它将在屏幕上返回4条记录。 下一主题Linux引导过程分步详解 |
我们请求您订阅我们的新闻通讯以获取最新更新。