在 Debian 12 中轻松查找文件和目录的两个命令
基本上,Linux 中的一切都是文件。但在能够编辑文件之前,您必须能够在系统中找到它。
关于Linux文件搜索
在本文中,我将通过实际示例详细介绍两个使用终端搜索文件的命令。这两个命令是查找命令和定位命令。这两个命令之间的区别在于 find 执行实时搜索,locate 使用索引数据库进行搜索。这意味着locate命令通常更快,但它假设正在搜索的文件位于其索引数据库中,并且该数据库通常是在晚上创建的,因此locate命令找不到较新的文件。我在我的环境中使用 Debian 12。但其他 Linux 发行版上的命令应该是相同的。
如果您想按内容而不是文件名搜索文件,请查看 grep 命令。
使用 find 命令搜索文件和目录
在当前目录中搜索文件
如果您想使用 find 命令查找文件,请在终端上执行以下命令之一。
find <filname>
认为,
find test.txt
这将搜索您正在处理的当前目录中的文件。
在另一个目录中搜索文件
现在,如果您想在特定目录中找到该文件。完整的命令应该是这样的,
find <path of directory/filename>
假设您要在文档中搜索名为“test.txt”的文件,完整的命令应如下所示。
find Documents/test.txt
按文件扩展名查找文件
现在,如果您想查找当前或特定目录中的所有文本文件,相应的命令应如下所示。
find *.txt
find <path of directory/*.txt>
假设您要搜索 Documents/Karim 路径下的所有文本文件,完整的命令应如下所示。
find Documents/Karim/*.txt
按名称查找文件
或者,当您想按名称搜索文件时,可以使用 -name 开关。
find <path> -name <name of file you want to search>
假设您要在 Documents/Karim 中搜索名为 test1.txt 的文件。完整的命令应该如下所示。
find Documents/Karim -name test1.txt
如果您想搜索当前正在处理的目录中的特定文件。放 。位于示例所示的路径中。
find . -name test1.txt
搜索文件时忽略大小写
如果要搜索文件并忽略大小写,请使用 -iname 开关。完整的命令应如下所示。
find . -iname test.txt
按文件类型查找文件,例如符号链接
要搜索特定文件类型,请使用 -type 选项。完整的命令应如下所示。
find <path> -type <c>
- c 表示文件类型,它们如下。
- b 块(缓冲)特殊
- c 字符(无缓冲)特殊
- d 目录
- p 命名管道
- f 常规文件
- l 符号链接
- D 门 (Solaris)
假设您要搜索 Documents/Karim 中的常规文件,请执行以下命令。
find Documents/Karim -type f
如果您想在当前目录中搜索常规文件。完整的命令应如下所示。
find . -type f
如果要搜索具有多个扩展名的文件,请使用以逗号分隔的 c 字符。
假设您想要查找当前目录中的所有常规空文件。
find . -type f -empty
假设您要查找当前目录中的所有空目录,请在 find 命令中使用 -d 和 -empty 选项,如下所示。
find . -type d -empty
按大小查找文件
如果你想查找特定大小的文件,可以使用-size参数。您可以使用以下后缀及其确切尺寸。
- c:字节
- k:千字节
- M:兆字节
- G:千兆字节
- b:512字节块
假设您要查找当前目录中恰好为 50 字节的所有文件。您必须执行以下命令。
find . -size 50c
假设您要查找当前目录中所有大于 50 字节或小于 50 字节的文件,您必须执行以下命令之一。
find . -size +50c
find . -size -50c
按所有者(用户)查找文件
如果要搜索特定用户拥有的文件,可以使用 -user 选项。该命令的语法应如下所示。
find <path> -user <username>
假设您要搜索当前目录中 Vitux 拥有的文件。该命令应如下所示。
find . -user vitux
使用定位命令查找文件
第二个是locate 命令,您可以使用它来搜索系统中的文件和目录。
首先,您必须在 Debian 12 计算机上安装locate 实用程序。使用 root 登录并在终端上执行以下命令。当系统要求您确认时,按键盘上的 Y。
apt-get install locate
等待操作完成。
Locate 是一个更快的命令,它依赖于文件系统的数据库。它每天更新一次,但如果您想手动更新,请使用 root 权限在终端上运行以下命令。
updatedb
要使用当前目录中的locate命令搜索文件,请在终端上执行以下命令。
locate <filename>
假设我的文件名是test.txt。完整的命令应如下所示。
locate test.txt
您可以使用 -i 选项忽略文件名大小写。
locate -i <filename>
或者
locate -i test.txt
定位和查找命令都有助于搜索文件。主要使用哪个命令取决于您。它们可以通过使用 pipeline、wc、sort 和 grep 等其他命令来扩展。