首页 > 滚动 > > 正文
如何在Ubuntu 22.04或20.04终端中搜索文件 天天新消息
2023-06-22 01:09:29 哔哩哔哩

在 Ubuntu 命令终端中查找和查找文件的各种方法及其命令示例。

如果您在 Ubuntu 的图形桌面上,则使用其文件管理器查找文件并不是一项困难的任务,但是如何在仅支持 CLI 的命令行服务器上执行相同的操作呢?为此,Ubuntu 提供了一个内置的命令行工具“find”,除此之外还有其他开源工具,例如 Locate,在这里我们也会讨论。这些类似命令的工具允许用户高效地搜索文件。我们可以使用它们根据某些标准(如名称或文件扩展名)搜索特定文件。

1:使用“find”命令搜索文件


(资料图片仅供参考)

默认情况下,所有 Ubuntu Linux 系统都可以使用“find”命令直接在终端中搜索文件。我们甚至可以定义不同的标准,例如名称、类型、大小和修改时间。

要使用它,请切换到要搜索的文件所在的目录,或者在命令中声明要搜索“find”命令的路径。

例如:

在当前目录中搜索

find -name your-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”命令及其附加选项

为了更好地使用“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 / -type s

此命令将在根目录中搜索套接字文件。

搜索命名管道(FIFO):

如果要查找命名管道或 FIFO,则可以使用以下命令:

find / -type p

此命令将在根目录中搜索命名管道或 FIFO。

按文件大小搜索:

我们可以使用以下选项按照文件大小搜索文件

find /path/to/search -size [+-]size[ckMeg]

将/path/to/search替换为要在其中搜索文件的目录路径,“**size**”是要搜索的文件的大小(以字节为单位),而“[+-]”可以是以下之一:

+:大于指定大小 -:小于指定大小

“ckMeg”是可选的后缀,用于指定大小的单位。例如:

c:字节 k:千字节(KB) M:兆字节(MB) G:千兆字节(GB)

示例:

以下是按文件大小搜索的示例命令。

搜索大于指定大小的文件:

要在当前目录及其子目录中搜索大于 100MB 的文件,请使用以下命令:

find -size +100M

搜索小于指定大小的文件:

要在当前目录及其子目录中搜索小于 100MB 的文件,请使用以下命令:

find -size -100M

搜索指定大小的文件:

要在当前目录及其子目录中搜索大小为 100MB 的文件,请使用以下命令:

find -size 100M

按时间搜索(修改时间、访问时间、更改时间、状态时间):

除了按文件名和大小搜索文件之外,我们还可以按文件的时间戳搜索文件。有以下四个时间戳:

mtime:文件的修改时间戳(文件内容修改)

atime:文件的访问时间戳(最后一次访问文件的时间)

ctime:文件的更改时间戳(文件内容或元数据的修改)

crtime:文件的状态时间戳(文件创建时间)

使用以下命令按时间搜索文件:

find /path/to/search -time [+-]n[unit]

将/path/to/search替换为要在其中搜索文件的目录路径,“**n**”是要搜索的时间量,“[+-]”可以是以下之一:

+:更大的时间 -:更小的时间

“unit”是可选的后缀,用于指定时间单位。以下是可用的时间单位:

s:秒 m:分钟 h:小时 d:天

示例:

以下是按时间搜索的示例命令。

搜索在最近 7 天内修改的文件:

要在当前目录及其子目录中搜索最近 7 天内修改的文件,请使用以下命令:

find -type f -mtime -7

搜索在最近 24 小时内访问的文件:

要在当前目录及其子目录中搜索最近 24 小时内访问的文件,请使用以下命令:

find -type f -atime -1

搜索在最近 30 分钟被更改的文件:

要在当前目录及其子目录中搜索最近 30 分钟内更改的文件,请使用以下命令:

find -type f -cmin -30

搜索在最近 1 小时内创建的文件:

要在当前目录及其子目录中搜索最近 1 小时内创建的文件,请使用以下命令:

find -type f -crtime -1h

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

“locate”命令是另一个用于在 Ubuntu 终端中搜索文件的工具。它比“find”命令更快,因为它会在系统上创建一个索引数据库,并且在搜索时只需要查找该数据库即可。但是,这也意味着它可能会错过最近创建或修改的文件,因为数据库可能不是最新的。

要使用“locate”命令搜索文件,请使用以下命令:

locate filename

其中“filename”是您要搜索的文件名称、模式或扩展名。

示例:

以下是使用“locate”命令搜索文件的示例命令。

搜索文件:

要在系统中搜索文件,请使用以下命令:

locate example.txt

搜索具有指定扩展名的文件:

如果要列出具有指定扩展名的所有文件,请使用以下命令:

locate "*.txt"

请注意,使用通配符时需要将文件名放在引号中。

结论

无论您是在命令行服务器上工作还是在 Ubuntu 桌面上工作,使用“find”和“locate”命令搜索文件都是非常有用的技能。它们可以帮助您快速找到特定文件,并在需要时对其进行操作。在学习这些命令时,请记住使用选项可以帮助您更好地控制搜索结果。

x 广告