如何在Ubuntu 22.04/20.04终端中搜索文件
通过命令示例查找直接从 Ubuntu 命令终端搜索和查找文件的各种方法。
如果您使用 Ubuntu 的图形桌面,那么使用其文件管理器查找文件并不是一件困难的任务,但如何在命令行服务器上执行相同的操作(其中 CLI 是唯一的方法)。 为此,Ubuntu 提供了一个名为“find“,除了还可以使用其他开源工具(例如 Locate)之外,我们在这里也对此进行讨论。
这些类似命令的工具允许用户有效地搜索文件。 我们可以使用它们根据某些条件(例如名称或文件扩展名)搜索特定文件。
那么,让我们看看可以如何在Ubuntu 22.04/20.04终端中搜索文件。
推荐:如何修复Windows Entry Point Not Found错误
1:使用“find”命令搜索文件
默认情况下,“find”命令在所有 Ubuntu Linux 系统上都可用,可直接在终端中搜索文件。 我们甚至可以定义不同的标准,例如名称、类型、大小和修改时间。
要使用它,要么切换到要搜索的文件所在的目录,要么声明要“find”命令搜索它的路径。
例如:
在当前目录中搜索
find -name you-file-name
然而,要在不切换到任何文件夹的情况下进行搜索,我们必须在命令中声明文件所在目录的路径。
句法:
find /path/to/search -name "your-filename"
代替 ”/path/to/search” 与您要开始搜索的目录,以及“your-filename你的文件名” 与您正在搜索的文件的名称或模式或扩展名。
例如, 如果您想在终端中搜索当前目录及其子目录中的文件“example.txt”,请使用:
find -name "example.txt"
然而,如果您不知道确切的文件名,但知道它使用的扩展名,那么我们可以使用通配符列出所有此类文件:
例子:它将列出您正在搜索的目录中所有扩展名为.txt 的文件。
find -name "*.txt"
2:使用带有附加选项的“查找”命令
为了获得更多的‘find‘ 命令我们可以使用其他选项来优化 Ubuntu 终端中的搜索结果。 以下是一些常用的:
代替/path/to/search 使用文件所在的目录路径,或者如果您位于文件可用的同一目录中,请将其删除。
按文件类型搜索:
find /path/to/search -type file_type
代替/path/to/search 与您要开始搜索的目录。 这 文件类型 可以是以下之一:
f: Regular files
d: Directories
l: Symbolic links
b: Block devices
c: Character devices
s: Sockets
p: Named pipes (FIFOs))
例子:
搜索常规文件:
要在当前目录及其子目录中搜索常规文件(不包括目录、符号链接等),请使用以下命令:
find -type f
搜索目录:
如果您只想查找当前位置的目录,可以使用以下命令:
find -type d
搜索符号链接:
要搜索特定目录中的符号链接,请使用以下命令:
find /usr/local -type l
该命令将搜索 / 中的符号链接 /usr/local 目录。
搜索块设备:
如果要查找块设备,例如硬盘或分区,可以使用以下命令:
find /dev -type b
该命令将搜索块设备 /dev 目录。
搜索字符设备:
要搜索字符设备,例如终端或串行端口,请使用以下命令:
find /dev -type c
该命令将搜索字符设备 /dev 目录。
搜索套接字:
如果您有兴趣查找用于进程间通信的套接字,请使用以下命令:
find /var/run -type s
该命令将搜索内的套接字 /var/运行 目录。
搜索命名管道 (FIFO):
要搜索命名管道或 FIFO(用于进程间通信的特殊文件),请使用以下命令:
find /tmp -type p
该命令将搜索命名管道 /tmp 目录。
按文件大小搜索(例如,大于1MB的文件):
find /path/to/search -size +1M
按修改时间搜索(例如最近7天内修改过的文件):
find /path/to/search -mtime -7
3:使用“locate”命令搜索文件
这 ‘定位默认情况下,Ubuntu 中无法使用该命令,但可以通过系统存储库进行安装。 它使用系统上可用的预先构建的文件名数据库来搜索我们需要的文件。 因此,比“查找”命令更快,但用户必须不时更新其数据库。
首先,我们来安装定位工具
sudo apt install locate
现在,使用给定的命令更新其数据库:
sudo updatedb
更新数据库后,我们可以使用locate命令搜索一个或多个文件,这是如何实现的?
locate myfile
代替 “myfile” 为您要搜索的名称或模式。
如果您想通过忽略大小写来搜索所有文件,请使用 -i 选项,这里是示例:
locate -i Myfile
要定位多个文件,请在 Locate 命令前面添加它们的名称,例如:
locate –i mfile.txt myfile.iso demo.txt
4:使用“grep”命令
“grep”命令主要用于搜索文件内容中的模式,但也可用于根据名称中的特定文本模式搜索文件。
要使用 ‘ 搜索文件grep‘,打开终端并使用以下命令:
ls -R | grep "pattern"
代替 ”pattern图案” 与您正在搜索的文本模式。 “ls -R”命令递归地列出所有文件,“grep”命令根据指定的模式过滤输出。
例子:查找当前目录中所有以 ‘。TXT’ 扩大。
ls -R | grep ".txt"
结论:
因此,这些是如何在Ubuntu 22.04/20.04终端中搜索文件的一些基本命令工具。 它将提高工作效率,因为您不必浏览一长串文件来找到您要查找的文件。 通过使用“find”、“locate”和“grep”等命令,您可以根据不同的条件(包括名称、类型、大小和修改时间)搜索文件。