如何在 Ubuntu 22.04 或 20.04 终端中搜索文件

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"
list-all-files-of-the-directory

2:使用带有附加选项的“find”命令

为了从“find”命令中获得更多收益,我们可以使用其他选项来优化 Ubuntu 终端中的搜索结果。以下是一些常用的:

将 /path/to/search 替换为文件所在的目录路径,或者如果您位于文件可用的同一目录中,请将其删除。

按文件类型搜索:

find /path/to/search -type file_type

 /path/to/search 替换为要开始搜索的目录。file_type可以是以下值之一:

f:常规文件
d:目录
l:符号链接
b:块设备
c:字符设备
s:套接字
p:命名管道 (FIFO)

例子:

搜索常规文件:

要搜索当前目录及其子目录中的常规文件(不包括目录、符号链接等),请使用以下命令:

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/run 目录中搜索套接字。

搜索命名管道 (FIFO):

要搜索命名管道或 FIFO(用于进程间通信的特殊文件),请使用以下命令:

find /tmp -type p

此命令将在 /tmp 目录中搜索命名管道。

按文件大小搜索(例如,大于 1MB 的文件):

find /path/to/search -size +1M

按修改时间搜索(例如,最近 7 天内修改的文件):

find /path/to/search -mtime -7

3:使用“locate”命令搜索文件

默认情况下,“locate”命令在 Ubuntu 中不可用,但可以通过系统存储库获取进行安装。它使用系统上可用的文件名的预建数据库来搜索我们需要的文件名。因此,比“查找”命令更快,但用户必须不时更新其数据库。

首先,让我们安装定位工具

sudo apt install locate

现在,使用给定的命令更新其数据库:

sudo updatedb

更新数据库后,我们可以使用 locate 命令搜索一个或多个文件,这里是怎么做到的?

locate myfile

取代“myfile”替换为要搜索的名称或模式。

如果要通过忽略区分大小写来搜索所有文件,请使用 -i 选项,下面是示例:

locate -i Myfile

要查找多个文件,请在“定位”命令前面添加它们的名称,例如:

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"

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun288550.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2024年3月13日 下午6:31
下一篇 2024年3月13日 下午6:35

相关推荐