如何在 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/) 荣誉推出


OK
Linux find file command explained. Finding files using the command line on a Linux machine could be very uncomfortable experience, especially for the beginners. Without a GUI it is very difficult to navigate through the directories and find the files you need. In this tutorial, we will show you how to find a specific file in Linux, using the command line.


The first thing your need to do is to [connect to your Linux VPS via SSH](https://www.rosehosting.com/blog/connect-to-your-linux-vps-via-ssh/). There are two common ways to search for a file under Linux. The one way is to use the `find`

command and the other way is to use the `locate`

command. Let’s start with the former.

## 1. Linux Find File Command

The **Linux find file command** allows you to search the directory tree using various search criteria such as name, type, ownership, size etc. This is the basic syntax:

# find path expression search-term

Here is a brief example on how to use the Linux find command to find a specific file by its name:

# find -name test.file

The command will search the entire directory tree for a file named `test.file`

and will provide you with the location. You can try using a name of a file that actually exists on your Linux VPS.

Sometimes it may take few minutes for the find command to search the entire directory tree, especially if there are many files and directories on your system. To save a significant amount of time you can specify the searching directory. For example, if you know that the `test.file`

is somewhere in the `/var`

directory, there is no need to search other directories. Therefore, you can use the command below:

# find /var -name test.file

There is also an option to search for a file by time, size, ownership, permissions etc. For more information about these options, you can check the **Linux find file command** man page.

# man find

## 2. Locate File command

In order to be able to use the Linux `locate`

command, you need to install it first.

If you are using an [Ubuntu VPS](https://www.rosehosting.com/ubuntu-hosting.html), run the following commands to install locate:

# apt-get update # apt-get install mlocate

If you are using a [CentOS VPS](https://www.rosehosting.com/centos-hosting.html), run the following command to install locate:

# yum install mlocate

Locate is a faster option to find a file since it searches for the files in a database. To update the search databases run the following command:

# updatedb

To find files in Linux with locate, use the following syntax:

# locate test.file

Just like with the find command, there are many options to filter the search output. To learn more about this you can check the **Linux locate command** man page.

# man locate

Of course, you don’t have to use the Linux find file, if you use one of our [Linux hosting services](https://www.rosehosting.com), in which case you can simply ask our expert Linux admins to look and find the files on Linux for you. They are available 24×7 and will take care of your request immediately. For more updates, you might want to consider reading [Find Large Files in Linux](https://www.rosehosting.com/blog/find-large-files-linux/).

PS. If you liked this post on how to use the Linux find file command, please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.