怎么用 Linux 命令行搜索文件

使用 GUI 时,搜索文件相对容易。但在某些环境(如无 GUI 服务器)中,您需要使用命令行搜索文件。

Linux中有一个功能强大的命令,可以帮助您搜索名为 的文件和文件夹。在本文中,我们将通过一些示例来讨论该命令。findfind

Linux 中的 find 命令是什么?

该命令可让您有效地搜索文件、文件夹以及字符和块设备。find

以下是该命令的基本语法:find

find /path/ -type f -name file-to-search

哪里

  • /path是预期找到文件的路径。这是搜索文件的起点。路径也可以分别表示根目录和当前目录。/.
  • -type表示文件描述符。它们可以是以下任何一种:

f– 常规文件, 如文本文件, 图像和隐藏文件.

d– 目录.这些是正在考虑的文件夹。

l– 符号链接。符号链接指向文件,类似于快捷方式。

c– 字符设备.用于访问字符设备的文件称为字符设备文件。驱动程序通过发送和接收单个字符(字节、八位字节)与字符设备进行通信。示例包括键盘、声卡和鼠标。

b– 阻止设备.用于访问块设备的文件称为块设备文件。驱动程序通过发送和接收整个数据块与块设备进行通信。示例包括 USB、光盘

  • -name是要搜索的文件类型的名称。

查找命令的示例

现在我们知道了命令的语法,让我们看一些例子。find

如何按名称或扩展名搜索文件

假设我们需要找到名称中包含“style”的文件。我们将使用此命令:

find . -type f -name style*

输出

现在,假设我们要查找具有特定扩展名的文件,例如 .我们将修改命令,如下所示:.html

find . -type f -name *.html

输出

如何搜索隐藏文件

隐藏文件由文件名开头的点表示。它们通常是隐藏的,但可以在当前目录中查看。ls -a

我们可以修改如下所示的命令以搜索隐藏文件。find

find . -type f -name ".*"

输出

我的主目录中的隐藏文件列表

如何搜索日志文件和配置文件

日志文件通常具有 扩展名 ,我们可以像这样找到它们:.log

 find . -type f -name "*.log"

输出

同样,我们可以搜索如下配置文件:

 find . -type f -name "*.conf"

如何按类型搜索其他文件

我们可以通过提供以下命令来搜索字符块文件:c-type

find / -type c

同样,可以使用以下命令找到设备块文件:b

find / -type b

如何搜索目录

在下面的示例中,我们找到了名为 .请注意,我们使用的是 .lib-type d

find . -type d -name "lib*"

输出

提示:我们可以通过查看 输出中的标志来识别目录。dls -lrt

如何按大小搜索文件

该命令的一个非常有用的用法是根据特定大小列出文件。find

find / -size  250MB

在这里,我们列出了大小超过250MB的文件

其他单位包括:

  • G:千兆字节。
  • M:兆字节。
  • K: 千字节
  • b:字节。

只需将<单位类型>替换为相关单位即可。

find-type f -size  N

如何按修改时间搜索文件

find /path -name "*.txt" -mtime -10
  • -mtime 10 表示您正在寻找 10 天前修改的文件。
  • -mtime -10 表示少于 10 天。
  • -mtime 10 如果您跳过 或 - 这意味着正好10天。

以下是我的主目录的内容:

让我们在我的主目录中应用一个示例。

find . -type f -name ".*" -mtime  10

在这里,我们有10天前修改过的文件。

使用 bash 脚本的实际示例find

我们可以与可以自动化的有意义的bash脚本组合或创建有意义的bash脚本。findrmmv

假设我们要创建一个脚本,将超过 7 天的日志文件移动到备份路径。从那里,它会删除早于 30 天的日志文件。我们可以创建一个脚本,并使用 .您可以在此处了解有关工作的更多信息。croncron

让我们看一下脚本:

#!/bin/bash
# Script to move from logs older than 7 days to backup logs path: /app/backup_logs/ESB0*

# move ESB01 logs to backup
find /logs/esb01/audit  -name "*.tar.gz" -mtime  7 -exec mv {} app/backup_logs/ESB01/ \;

# Remove logs from backup path after 30 days
find /app/backup_logs/ESB01 -name "*.tar.gz" -mtime  30  -exec rm {} \;

请注意,我们正在与 一起使用。基本上,执行提供的命令(在我们的例子中)。 是保存命令结果的占位符。最后,我们提供 分隔符 。由于我们不希望 shell 解释分号,因此我们用 .execfindexecmvrm{};\ 共享脚本在存档和删除日志时非常有用。

更多学习资料关注【运维派】

(0)

相关推荐

  • 怎么从Linux命令行刻录镜像文件到DVD光盘中

    当我们在操作Linux系统的时候,需要将镜像文件刻录到DVD中,那么要怎么做呢?下面小编给大家介绍下怎么从Linux命令行刻录镜像文件到DVD中,一起来学习下吧。 最常见的两种镜像文件格式是ISO(. ...

  • Linux系统中运用命令行创建文件夹/目录

    Linux系统中运用mkdir命令行创建文件夹/目录 操作方法 01 mkdir命令的格式: mkdir directory... 02 实例1:创建单个目录dir1 mkdir dir1 03 实例 ...

  • 如何在Linux命令行中刻录ISO或NRG镜像到DVD

    问题:我需要在Linux机器上使用DVD刻录机刻录一个镜像文件(.iso或.nrg)到DVD,有没有一个既快捷又简易的方法,最好是使用命令行工具? 最常见的两种镜像文件格式是ISO(.iso为文件扩展 ...

  • 切换ubuntu下图形模式与linux命令行模式

    本文讲述了linux下图形模式与linux命令行模式切换要领。下面将对此执行 细致说明: ctrl+alt+f2 命令行模式 ctrl+alt+f7 图形模式 我安装的是ubuntu版本,其他版本是不 ...

  • Linux命令行之逗趣的图文

    你有没有在Linux命令行中见过一辆火车呢?"猫跟老鼠"呢?编辑Linux命令行其实并不总是件严肃古板的事情。你完全可以用它自娱自乐。下面我们就跟大家一起讨论一下Linux命令行的特质。 假设:本文所 ...

  • 如何在 Linux 命令行中使用和执行 PHP 代码

    PHP是一个开源服务器端脚本语言,最初这三个字母代表的是"Personal Home Page",而现在则代表的是"PHP:Hypertext Preprocessor& ...

  • 利用linux命令行工具进行文本行过滤的方法

    在日常工作中会遇到需要筛选过滤要查看的日志等文本文件的任务,例如需要查看日志文件的最后几行等.下面总结一下常见的对文本行过滤的方法.一起去看看吧! 常用命令行工具 接下来主要使用的是head,tail ...

  • linux命令行下文件名中有空格的处理方法

    Q:我在树莓派命令行模式下使用mplayer播放单首音乐,因为文件名中含有空格,提示不存在该文件,该如何解决? [johnwick@raspberrypi~]$sudo mplayer Me like ...

  • 如何在Linux命令行模式安装VMware Tools

    本例中为在Linux(以CentOS 7为例)安装VMware Tools. 在Linux命令行模式安装VMware Tools 01 首先启动CentOS 7,在VMware中点击上方"V ...

  • 如何使用Linux命令行检测DVD刻录机的名字和读写速度

    提问:我想要知道我的DVD刻录机的名字和在烧录时的速度。该使用什么Linux命令行工具来连测DVD刻录机的设备名和速度? 如今大多数消费PC和笔记本电脑都配备了DVD刻录机。在Linux中,光盘驱动器 ...