1 深入Linux操作环境的find和exec用法-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深入Linux操作环境的find和exec用法

如意 来源:良许Linux 作者:良许 2020-10-08 14:50 次阅读

Linux下工作,find命令绝对是一个非常高频的命令。我们可以用find命令来找到符合某些关键词的文件,找到某些日期的文件,也可以设定一些正则表达式,找到一系列满足该条件的文件。

但是,如果只有一个find命令的话,我们仅能将文件找出来,列在终端里。仅一个find命令还不足以再做进一步的操作。

比如说,我们想把项目文件夹里的中间文件(*.o文件)找出来,再把它们全部删除;再如,我们想把日志文件夹下3天以上的日志全部转移到指定文件夹下;等等诸如此类的需求,还有非常多。

像这样的,我们想用find命令找到相关文件,再作进一步操作,该如何进行呢?这时候exec命令就派上用场。

我们先来看看exec的基本用法。

-exec参数后面跟的就是我们想进一步操作的命令,比如rm,mv等等。exec是以分号“;”作为结束标识符的,考虑到各个系统平台对分号的不同解释,我们在分号前再加个反斜杠,便于移植。而在分号前,通常也会有一对花括号{},代表前面find命令查找出来的文件各。

我们直接通过几个实例来讲解find与exec联合用法。为了演示的方便,我们假定有如下的一个项目文件夹:

深入Linux操作环境的find和exec用法

实例1:使用find命令查找相关文件后,再使用ls命令将它们的详细信息列出来

我们现在想把当前目录下所有的.o文件全部找出来,并用 ls -l 命令将它们列出来。实现这个需求的命令如下:

find 。 -name “*.o” -type f -exec ls -l {} ;

结果如下:

深入Linux操作环境的find和exec用法

在这里,我们用find 命令匹配到了当前目录下的所有.o文件,并在 -exec 选项中使用 ls -l 命令将它们的详细信息列出来。

实例2:使用find命令查找相关文件后,再使用rm命令将它们删除

我们现在想把当前目录下所有的.o文件全部找出来,并用rm命令将它们删除。实现这个需求的命令如下:

find 。 -name “*.o” -exec rm {} ;

执行完这个命令后,该目录下所有的.o文件都被删除。由于这个动作完成后也不会有任何提示,所以就没有截图的必要了。

实例3:使用-exec选项的安全模式,将对每个匹配到的文件进行操作之前提示用户

在实例2中,我们匹配到文件后就立刻执行rm命令,这样操作有些危险,因为如果一旦误操作,有可能会引起灾难性的后果。

exec的安全模式就是为了避免这个问题而产生。它会在匹配到某个文件后,在进行操作之前会先问一下你,经过你的确认它才会进行相应操作。

同样的实例2的需求,如果采用安全模式的话,命令是这样的:

find 。 -name “*.o” -ok rm {} ;

执行结果如下:

深入Linux操作环境的find和exec用法

实例4:搜索匹配到的文件中的关键内容

假如我现在有个很大型的项目(如Linux内核),我想在里面搜索一个含有某关键字的文件。我们可以使用grep命令检索所有的文件。这样做肯定是可以的,但如果项目很大的话,这样太耗时了,效率太低。

我们可以先用find命令找到所以相关文件,然后再用grep命令检索那些文件即可。因为已经使用find过滤一遍了,所以这样操作会节约很多时间,提高效率。

命令如下:

find 。 -name “*.h” -exec grep -rns “hello” {} ;

结果如下:

深入Linux操作环境的find和exec用法

实例5:查找文件并移动到指定目录

这个需求就比较简单了。比如我现在想把所有的.o文件找出来,然后新他们mv到buil目录。命令如

下:

find 。 -name “*.o” -exec cp {} build ;

结果如下:

深入Linux操作环境的find和exec用法

责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209318
  • Find
    +关注

    关注

    0

    文章

    54

    浏览量

    11649
  • Shell
    +关注

    关注

    1

    文章

    365

    浏览量

    23354
  • 操作环境
    +关注

    关注

    0

    文章

    9

    浏览量

    7053
收藏 人收藏

    评论

    相关推荐

    Linux find命令的用法

    可以很肯定地说,find 命令是 Linux 后台开发人员必须熟知的操作之一,除非您使用的是 Windows Server。
    发表于 10-12 11:27 564次阅读

    Linux find命令详解

    find 命令是我们日常工作中比较常用的Linux命令。全面的掌握这个命令可以使很多操作达到事半功倍的效果。如果对find命令有以下这些疑惑,本文都能帮你解决。
    发表于 11-30 10:11 1582次阅读

    掌握find命令的这几种用法,就没有找不到的文件!

    今天浩道跟大家分享linux下关于find命令的几种经典用法,让你在linux茫茫的文件海洋中可以找出任何想要的文件!
    发表于 12-06 14:19 810次阅读

    #硬声创作季 Linux云计算运维:08 Find之-Exec和-Ok用法

    Linux操作系统exe
    Mr_haohao
    发布于 :2022年09月27日 23:05:29

    linuxfind命令用法 linux学习心得

    find命令用来在指定目录下查找文件的命令,和locate不同,find命令是实时精确查找,不做模糊匹配,但是可以使用通配符查找,相对更精确。任何位于参数之前的字符串都将被视为欲查找的目录名。如果
    发表于 01-23 15:30

    [转]find命令结合exec和xargs使用的区别

    使用的区别:使用-exec选项命令操作示例及结果如下:[code][root@oldboy ~]# find . -type f -exec echo oldboyedu { } \
    发表于 09-03 15:26

    深入理解SQLite3之sqlite3_exec及回调函数sqlite3

    深入理解SQLite3之sqlite3_exec及回调函数sqlite3:深入理解sqlite3_stmt 机制sqlite3: sqlite3_step 函数sqlite3
    发表于 11-04 07:11

    详谈Linuxfind命令

    findLinux 下最有用的命令之一,熟练的使用它对于提高工作效率很有帮助。下面介绍它的一些用法
    的头像 发表于 06-23 09:43 3091次阅读
    详谈<b class='flag-5'>Linux</b>的<b class='flag-5'>find</b>命令

    嵌入式Linux开发学习如何入门、如何深入

    嵌入式Linux开发学习如何入门、如何深入?学习步骤如下:1、Linux 基础安装Linux操作系统Li
    发表于 10-21 10:21 10次下载
    嵌入式<b class='flag-5'>Linux</b>开发学习如何入门、如何<b class='flag-5'>深入</b>?

    17个linux高效运维操作技巧

    今天浩道跟大家分享17个linux高效运维操作技巧 ! 1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录:   find . -name “*.tar” -exec mv
    的头像 发表于 11-01 09:40 1241次阅读

    find exec命令实例教程

    Linux find命令是根据指定条件搜索文件和目录的绝佳工具。exec允许您对找到的文件执行指定操作
    的头像 发表于 12-06 17:08 2745次阅读

    7种LinuxFind命令的高级用法

    可以很肯定地说,find 命令是 Linux 后台开发人员必须熟知的操作之一,除非您使用的是 Windows Server。
    的头像 发表于 03-31 09:27 1180次阅读

    linuxfind用法详解

    Linux中, find 命令是一个非常强大的工具,用于在指定目录下查找文件和目录。下面是 find 命令的用法和详细解释: 语法: find
    的头像 发表于 11-08 14:29 710次阅读

    linux常用命令及用法

    Linux是一种开源的操作系统,它以稳定、高效和安全的特点受到广大用户的喜爱。掌握Linux的常用命令及其用法对于操作系统的管理和开发都至关
    的头像 发表于 11-17 09:47 655次阅读

    Linux lsof命令的基本用法

    linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。本文将介绍 lsof 命令的基本用法,本文中 demo 的演示
    的头像 发表于 10-23 11:52 235次阅读
    <b class='flag-5'>Linux</b> lsof命令的基本<b class='flag-5'>用法</b>