如何在 Linux 中查找一个文件
对于新手而言，在 Linux 中使用命令行可能会非常不方便。没有图形界面，很难在不同文件夹间浏览，找到需要的文件。本篇教程中，我会展示如何在 Linux 中查找特定的文件。
查找 文件
117.152.70.58
但是作者应该把find命令讲的更详细些，很多人都不愿意看一大堆英文的man page的
来自117.152.70.58的 Chrome 54.0|Windows 10 用户
2016-12-06T14:01:59.000
123.120.78.25
这只是个引子，我们其实陆续介绍过很多次，各种深度的。
linux [Chrome 54.0|Mac 10.11]
2016-12-06T14:36:57.000
1.80.218.181
locate 第一次用，速度确实很快！
来自陕西西安的 Chrome 54.0|Windows 7 用户
2016-12-06T16:04:58.000
219.128.232.124
稍微简略了点，希望可以更加地详尽。
TANG^JJ^ [Firefox 50.0|Ubuntu]
2016-12-07T09:48:46.000
134.134.139.83
关于&nbsp; &nbsp; # find -name test.file<br />
<br />
命令会搜索整个目录树来查找名为 test.file 的文件，并且会提供其存放位置。你可以使用你 Linux 上一个存在的文件名来尝试一下<br />
<br />
If&nbsp;&nbsp;no paths are given, the current directory is used. （参考man手册） 应该是当前的目录树
jun413947139 [Firefox 50.0|Windows 10]
2016-12-07T14:39:18.000
118.79.126.98
谢谢，你说的对，这点是没有描述清楚。
linux [Chrome 54.0|Mac 10.11]
2016-12-07T18:11:11.000
144.52.21.40
find 命令 -name “文件名”<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; -type&nbsp; &nbsp; 文件类型<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ！&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;取反<br />
<br />
例如：&nbsp;&nbsp;find&nbsp;&nbsp;/data/ -type d ！ -name &quot;abc&quot;<br />
#查找出/data目录下不包含abc的目录<br />
<br />
<br />
希望对大家有用
mdjbf [Microsoft Edge 14.14393|Windows 10]
2016-12-11T20:47:37.000
111.161.162.227
记得有的同事find之前也updatedb一下，好奇怪啊！
来自天津的 Mobile Safari|iOS 10.1 用户
2016-12-12T23:06:32.000
123.120.85.250
哈哈，这就是不求甚解的结果。
linux [Chrome 54.0|Mac 10.11]
2016-12-13T23:25:54.000
对于新手而言，在 Linux 中使用命令行可能会非常不方便。没有图形界面，很难在不同文件夹间浏览，找到需要的文件。本篇教程中，我会展示如何在 Linux 中查找特定的文件。
![](/data/attachment/album/201612/06/115513ee3se45f5es8z93e.jpg)


对于新手而言，在 Linux 中使用命令行可能会非常不方便。没有图形界面，很难在不同文件夹间浏览，找到需要的文件。本篇教程中，我会展示如何在 Linux 中查找特定的文件。


第一步要做的是**[通过 SSH 连接到你的 Linux](https://www.rosehosting.com/blog/connect-to-your-linux-vps-via-ssh/)**。在 Linux 中查找文件有两种方法。一种是使用 `find` 命令，另外一种是使用 `locate` 命令。我们先看第一种。


### find 命令


使用 **Linux find 命令**可以用不同的搜索标准如名字、类型、所属人、大小等来搜索目录树。基本语法如下：



```
# find path expression search-term

```

下面是使用 find 命令根据文件名来查找特定文件的一个例子：



```
# find -name test.file

```

命令会搜索整个目录树来查找名为 `test.file` 的文件，并且会提供其存放位置。你可以使用你 Linux 上一个存在的文件名来尝试一下。


find 命令有时会花费几分钟来查找整个目录树，尤其是如果系统中有很多文件和目录的话。要显著减少时间，你可以指定搜索的目录。比如，如果你知道 `/var` 中存在 `test.file`，那就没有必要搜索其它目录。这样，你可以使用下面的命令：



```
# find /var -name test.file

```

find 还可以根据时间、大小、所属人、权限等选项搜索文件。要了解更多关于这些选项的信息，你可以使用查看\*\* Linux find 命令\*\*的手册。



```
# man find

```

### locate 命令


要在Linux中使用`locate`命令，首先需要安装它。


如果你正在使用 Ubuntu，运行下面的命令来安装 locate：



```
# apt-get update
# apt-get install mlocate

```

如果你使用的是 CentOS ，运行下面的命令来安装 locate：



```
# yum install mlocate

```

locate 是一种比 find 更快的方式，因为它在数据库中查找文件。要更新搜索数据库，运行下面的命令：



```
# updatedb

```

使用 locate 查找文件的语法：



```
# locate test.file

```

就像 find 命令一样，locate 也有很多选项来过滤输出。要了解更多你可以查看**Linux Locate 命令**的手册。



```
# man locate

```

如果你喜欢这篇文件，请使用左边的按钮分享到社交网络上，或者在下面留言，谢谢。




---


via: <https://www.rosehosting.com/blog/linux-find-file/>


作者：[RoseHosting](https://www.rosehosting.com/blog/linux-find-file/) 译者：[geekpi](https://github.com/geekpi) 校对：[jasminepeng](https://github.com/jasminepeng)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

