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”命令
为了从“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"