如何从 Linux 终端找到特定文件?

问题描述 投票:0回答:7

我正在尝试查找

index.html
在我的 Linux 服务器上的位置,并且想知道是否有命令可以做到这一点。对 Linux 非常陌生,感谢我能得到的任何帮助。

linux debian
7个回答
114
投票

从根路径查找

find / -name "index.html"

从当前路径查找

find . -name "index.html"


6
投票

下面的代码行可以为您完成。

find / -name index.html

但是,在大多数 Linux 服务器上,您的文件将位于 /var/www 或用户目录文件夹 /home/(user) 中,具体取决于您的设置方式。如果您使用控制面板,它很可能位于您的用户文件夹下。


5
投票

尝试这个(通过 shell):

update db
locate index.html

或者:

find /var -iname "index.html"

将 /var 替换为您对它所在目录的最佳猜测,但避免从 / 开始


4
投票

解决方案:使用unix命令

find

查找实用程序递归地向下查找每个路径的目录树 列出,评估一个表达式(由 'primaries' 和 '操作数')就 树中的每个文件。

  • 您可以通过控制它来使查找操作更加高效和智能 正则表达式查询、文件类型、大小阈值、深度 子树、组、所有权、时间戳、修改/创建日期等维度。
  • 此外,您可以使用运算符并组合查找请求,例如 或/不/等等...

传统的公式是:

find <path> -flag <valueOfFlag>

简单示例

1.按 Name 查找 - 从我当前位置子树层次结构中查找所有

package.json

find . -name "package.json"

2.按名称和类型查找 - 从所有文件系统中查找所有

node_modules
目录(从根层次结构开始)

sudo find / -name "node_modules" -type d

复杂示例:

更多有用的示例可以展示标志选项和运算符的强大功能:

3.正则表达式和文件类型 - 仅在我的应用程序位置查找所有 javascript 控制器变体名称(使用正则表达式)javascript 文件

find /user/dev/app -name "*contoller-*\.js" -type f

-type
f 表示与正则表达式相关的文件
-name
到控制器字符串的任何变体,并在末尾带有
.js

4.深度-查找应用程序目录中的所有路线模式目录不超过3个维度(仅app/../../..并且不再更深)

find app -name "*route*" -type d  -maxdepth 3

-type
d 表示与正则表达式相关的目录
-name
到路由字符串的任何变体
-maxdepth
使查找器专注于 3 个子树深度,不再有
<yourSearchlocation>/depth1/depth2/depth3
)

5.文件大小、所有权和 OR 运算符 - 查找 root 用户所有权下名称为“sample”或“test”且大于 1 Mega 且小于 5 Mega 的所有文件。

find . \( -name "test" -or -name "sample" \)  -user root -size +1M -size -5M

-size
阈值,表示 大于 (+) 和 小于 (-) 之间的范围
-user
表示文件所有者
-or
运算符过滤两个正则表达式匹配的查询

6.空文件 - 查找文件系统中的所有空目录

find / -type d -empty

7.文件的访问、修改和创建时间 - 查找10天内在目录中创建/修改/访问的所有文件

# creation (c)
find /test -name "*.groovy" -ctime -10d
# modification (m)
find /test -name "*.java" -mtime -10d
# access (a)
find /test -name "*.js" -atime -10d

8.修改大小过滤器 - 查找一周前到三周前精确修改且小于 500kb 的所有文件,并将其大小显示为列表

find /test -name "*.java" -mtime -3w -mtime +1w -size -500k | xargs du -h

0
投票

find /the_path_you_want_to_find -name index.html


0
投票

一般来说,在任意位置查找任何文件的最佳方法是启动终端窗口并输入经典的 Unix 命令“find”:

find / -name index.html -print

由于您要查找的文件是 Web 服务器根目录中的根文件,因此可能更容易找到 Web 服务器的文档根目录。例如,请查看:

/var/www/*

或输入:

find /var/www -name index.html -print

0
投票

我们有2个选项,一个是find命令,另一个是locate命令

查找命令 如果你的文件是index.html

sudo find / -name index.html(如果你知道路径请替换为/)

如果您在根访问文件夹中搜索,则需要 sudo

定位命令

locate 命令将保存要运行的单独数据库。

ex:找到index.html

如果找不到您的文件 运行以下命令

sudo updateb

现在尝试找到index.html

注意:locate 速度更快,因为它使用 db 而不是直接文件系统搜索

但是从我的角度来看 find 命令很好,因为它正在搜索整个文件系统。

希望你能提出一些好主意。

© www.soinside.com 2019 - 2024. All rights reserved.