linux——查找文件

简介: 查找

linux  下查找文件的方法可以归类为4种(并不一定严格准确,仅作为参考):

  1.    通过find 命令去找
  2.    通过locate 命令去找
  3.    通过 grep 根据查找文件内容去找
  4.    通过特定程序的指定用法去找

 

1. 通过find 命令查找文件

   find 命令用法很多,这里只说下常用的,其它的用到的时候可以man 一下子。

    find 基本用法是:

    find  /  -option params

    查找当前目录下文件名为:.env 的文件:

    find  ./ -name .env

网络异常,图片无法展示
|

 

查找文件类型为管道的文件

find / -type p

网络异常,图片无法展示
|

这里说一下创建管道文件的命令是:mkfifo

查找大于200M 的文件:

find / -size +200M

网络异常,图片无法展示
|

在当前目录下查找大于100M 并且小于300M的文件:

find ./ -size +100M -size -300M

网络异常,图片无法展示
|

说明:如果想查找大于100k的文件,可以直接把M 替换成 k 即可 ,这里为了举例方便,很多时候都是在/目录下查找,但是在生产环境中慎用,这样做会产生很大的性能问题。

在当前目录下查找,2天以前修改的文件

find ./ -mtime +2

说明:stat fileName 查看文件时间戳,同理,查看文件创建时间 ctime ,文件访问时间 atime ,命令模式:find  path m/a/c time +n -n  ,+n是指n天以前, - n 是指n 天以内。

网络异常,图片无法展示
|

 

查找文件名中有index的python 文件(即*index*.py)

find / -name "*index*.py"

网络异常,图片无法展示
|

 

其它的一些用法可以参考这篇文章:

http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html

对find 命令来说,如果不想去man  ,可以看下上面链接地址的文章,写的很详细很全。

 

2. 通过locate 命令去定位

locate 查找文件比find 要快,要简单的多 ,跟 find 比起来,少了很多参数,这里只说下查找的用法,其它一些用法请自行man。

查找php.ini

locate php.ini

网络异常,图片无法展示
|

 

如果你亲自尝试了一把,就会发现,locate 命令会很快,locate之所以如此之快,是因为它不会为搜索到的文件或目录名读取文件系统。它实际上是指一个数据库(由updatedb编写)来查找用户正在查找的内容,并根据该搜索生成其输出。这样虽然很快,但有一个问题就是刚刚创建的文件,不会被搜索到。如果想使刚创建的文件被 locate 命令搜索到 , 可以使用 sudo updatedb 命令 更新数据库, 否则要等到第二天才能搜索到该文件 , 该后台数据库默认一天更新一次 ;

 

在etc/下查找以m开头的文件:

locate /etc/m

网络异常,图片无法展示
|

locate -S 可以查看数据库的信息


root@zhang-kubuntu-host:/etc# locate -S

数据库 /var/lib/mlocate/mlocate.db:

      55,016 文件夹

      460,277 文件

      30,716,854 文件名中的字节数

      12,146,130 字节用于存储数据库

root@zhang-kubuntu-host:/etc#


至于更多locate 的用法,可以移步到https://www.howtoforge.com/linux-locate-command/,或者自行man 。

 

3.grep 根据文件内容查找

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

语  法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

在当前目录下查找文件中包含stdio 字符的文件:

grep stdio ./*

网络异常,图片无法展示
|

 

在/etc 目录下查找文件内容中有127.0.0.1 的内容:

grep 127.0.0.1 /etc/*

网络异常,图片无法展示
|

查找文件中内容有StdClass 并且New开头的文件

grep stdClass New*

网络异常,图片无法展示
|

 

说明:如果你试了该命令就会发现,使用该命令会提示一个***** 是一个目录的信息,这是因为grep命令只能在文件内搜索。

上面三种方法是比较重要的方法,尤其是find 和 grep 命令,grep  是linux 中一个非常重要的命令,这里只是简单的说了下grep 查找文件用法,还有其它一些可以参考这篇文章,这个老哥写的蛮全的,http://www.cnblogs.com/end/archive/2012/02/21/2360965.html

 

4.通过特定程序定位文件

这一种方法,用的比较少,但个人感觉速度很快,又很精准,它依赖于特定的应用程序。这里拿php 和 nginx 来举栗说明。

假定我们要修改php 和 nginx 的配置,但忘记了配置文件在哪里?怎么做呢?知道了locate  命令后能很快定位该配置文件路径。但还有其它方案,也能很快速的定位配置文件的路径。

$ php -i | grep php.ini

zhang@zhang-kubuntu-host:~$ php -i | grep php.ini

Configuration File (php.ini) Path => /usr/local/php/etc

Loaded Configuration File => /usr/local/php/etc/php.ini


然后再看下怎么定位nginx 的配置文件吧!

nginx -h

这条命令可能会让人失望,但它也显示了一些我们需要的信息。

网络异常,图片无法展示
|

 

可以看到prefix 和 filename ,这两项组合起来,就是nginx默认配置文件的目录。

目录
相关文章
|
2月前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
261 65
|
2月前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
309 5
|
2月前
|
Linux Shell 数据库
Linux文件查找新姿势:总有一种你没见过
【10月更文挑战第18天】文件查找是Linux用户提升工作效率的重要技能。本文介绍了几种实用的文件查找方法,包括基础的`find`命令、快速的`locate`和`mlocate`、高效的`fd`工具、以及结合`grep`和`rg`进行内容搜索。此外,还提供了编写Shell脚本和使用图形界面工具的建议,帮助你更灵活地管理文件。
83 3
|
2月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
54 2
|
4天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
29 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1月前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
41 5
|
1月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
48 6
|
1月前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
78 6
|
1月前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
61 4
|
2月前
|
Linux 开发工具 数据安全/隐私保护
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
这篇文章介绍了在CentOS 7系统中安装Docker时遇到的两个常见问题及其解决方法:用户不在sudoers文件中导致权限不足,以及yum被锁定的问题。
43 2
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for