0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深入Linux操作環(huán)境的find和exec用法

如意 ? 來源:良許Linux ? 作者:良許 ? 2020-10-08 14:50 ? 次閱讀

Linux下工作,find命令絕對是一個非常高頻的命令。我們可以用find命令來找到符合某些關鍵詞的文件,找到某些日期的文件,也可以設定一些正則表達式,找到一系列滿足該條件的文件。

但是,如果只有一個find命令的話,我們僅能將文件找出來,列在終端里。僅一個find命令還不足以再做進一步的操作。

比如說,我們想把項目文件夾里的中間文件(*.o文件)找出來,再把它們全部刪除;再如,我們想把日志文件夾下3天以上的日志全部轉移到指定文件夾下;等等諸如此類的需求,還有非常多。

像這樣的,我們想用find命令找到相關文件,再作進一步操作,該如何進行呢?這時候exec命令就派上用場。

我們先來看看exec的基本用法。

-exec參數(shù)后面跟的就是我們想進一步操作的命令,比如rm,mv等等。exec是以分號“;”作為結束標識符的,考慮到各個系統(tǒng)平臺對分號的不同解釋,我們在分號前再加個反斜杠,便于移植。而在分號前,通常也會有一對花括號{},代表前面find命令查找出來的文件各。

我們直接通過幾個實例來講解find與exec聯(lián)合用法。為了演示的方便,我們假定有如下的一個項目文件夾:

深入Linux操作環(huán)境的find和exec用法

實例1:使用find命令查找相關文件后,再使用ls命令將它們的詳細信息列出來

我們現(xiàn)在想把當前目錄下所有的.o文件全部找出來,并用 ls -l 命令將它們列出來。實現(xiàn)這個需求的命令如下:

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

結果如下:

深入Linux操作環(huán)境的find和exec用法

在這里,我們用find 命令匹配到了當前目錄下的所有.o文件,并在 -exec 選項中使用 ls -l 命令將它們的詳細信息列出來。

實例2:使用find命令查找相關文件后,再使用rm命令將它們刪除

我們現(xiàn)在想把當前目錄下所有的.o文件全部找出來,并用rm命令將它們刪除。實現(xiàn)這個需求的命令如下:

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

執(zhí)行完這個命令后,該目錄下所有的.o文件都被刪除。由于這個動作完成后也不會有任何提示,所以就沒有截圖的必要了。

實例3:使用-exec選項的安全模式,將對每個匹配到的文件進行操作之前提示用戶

在實例2中,我們匹配到文件后就立刻執(zhí)行rm命令,這樣操作有些危險,因為如果一旦誤操作,有可能會引起災難性的后果。

exec的安全模式就是為了避免這個問題而產(chǎn)生。它會在匹配到某個文件后,在進行操作之前會先問一下你,經(jīng)過你的確認它才會進行相應操作。

同樣的實例2的需求,如果采用安全模式的話,命令是這樣的:

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

執(zhí)行結果如下:

深入Linux操作環(huán)境的find和exec用法

實例4:搜索匹配到的文件中的關鍵內容

假如我現(xiàn)在有個很大型的項目(如Linux內核),我想在里面搜索一個含有某關鍵字的文件。我們可以使用grep命令檢索所有的文件。這樣做肯定是可以的,但如果項目很大的話,這樣太耗時了,效率太低。

我們可以先用find命令找到所以相關文件,然后再用grep命令檢索那些文件即可。因為已經(jīng)使用find過濾一遍了,所以這樣操作會節(jié)約很多時間,提高效率。

命令如下:

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

結果如下:

深入Linux操作環(huán)境的find和exec用法

實例5:查找文件并移動到指定目錄

這個需求就比較簡單了。比如我現(xiàn)在想把所有的.o文件找出來,然后新他們mv到buil目錄。命令如

下:

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

結果如下:

深入Linux操作環(huán)境的find和exec用法

責編AJX

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11177

    瀏覽量

    208499
  • Find
    +關注

    關注

    0

    文章

    52

    瀏覽量

    11624
  • Shell
    +關注

    關注

    1

    文章

    361

    瀏覽量

    23234
  • 操作環(huán)境

    關注

    0

    文章

    9

    瀏覽量

    7047
收藏 人收藏

    評論

    相關推薦

    Linux find命令的用法

    可以很肯定地說,find 命令是 Linux 后臺開發(fā)人員必須熟知的操作之一,除非您使用的是 Windows Server。
    發(fā)表于 10-12 11:27 ?550次閱讀

    Linux find命令詳解

    find 命令是我們日常工作中比較常用的Linux命令。全面的掌握這個命令可以使很多操作達到事半功倍的效果。如果對find命令有以下這些疑惑,本文都能幫你解決。
    發(fā)表于 11-30 10:11 ?1540次閱讀

    掌握find命令的這幾種用法,就沒有找不到的文件!

    今天浩道跟大家分享linux下關于find命令的幾種經(jīng)典用法,讓你在linux茫茫的文件海洋中可以找出任何想要的文件!
    發(fā)表于 12-06 14:19 ?782次閱讀

    #硬聲創(chuàng)作季 Linux云計算運維:08 Find之-Exec和-Ok用法

    Linux操作系統(tǒng)exe
    Mr_haohao
    發(fā)布于 :2022年09月27日 23:05:29

    linuxfind命令用法 linux學習心得

    find命令用來在指定目錄下查找文件的命令,和locate不同,find命令是實時精確查找,不做模糊匹配,但是可以使用通配符查找,相對更精確。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果
    發(fā)表于 01-23 15:30

    [轉]find命令結合exec和xargs使用的區(qū)別

    使用的區(qū)別:使用-exec選項命令操作示例及結果如下:[code][root@oldboy ~]# find . -type f -exec echo oldboyedu { } \
    發(fā)表于 09-03 15:26

    深入理解SQLite3之sqlite3_exec及回調函數(shù)sqlite3

    深入理解SQLite3之sqlite3_exec及回調函數(shù)sqlite3:深入理解sqlite3_stmt 機制sqlite3: sqlite3_step 函數(shù)sqlite3
    發(fā)表于 11-04 07:11

    詳談Linuxfind命令

    findLinux 下最有用的命令之一,熟練的使用它對于提高工作效率很有幫助。下面介紹它的一些用法
    的頭像 發(fā)表于 06-23 09:43 ?3041次閱讀
    詳談<b class='flag-5'>Linux</b>的<b class='flag-5'>find</b>命令

    嵌入式Linux開發(fā)學習如何入門、如何深入?

    嵌入式Linux開發(fā)學習如何入門、如何深入?學習步驟如下:1、Linux 基礎安裝Linux操作系統(tǒng)Li
    發(fā)表于 10-21 10:21 ?10次下載
    嵌入式<b class='flag-5'>Linux</b>開發(fā)學習如何入門、如何<b class='flag-5'>深入</b>?

    17個linux高效運維操作技巧

    今天浩道跟大家分享17個linux高效運維操作技巧 ! 1、查找當前目錄下所有以.tar結尾的文件然后移動到指定目錄: ? find?.?-name?“*.tar”?-exec?mv
    的頭像 發(fā)表于 11-01 09:40 ?1181次閱讀

    find exec命令實例教程

    Linux find命令是根據(jù)指定條件搜索文件和目錄的絕佳工具。exec允許您對找到的文件執(zhí)行指定操作。
    的頭像 發(fā)表于 12-06 17:08 ?2581次閱讀

    7種LinuxFind命令的高級用法

    可以很肯定地說,find 命令是 Linux 后臺開發(fā)人員必須熟知的操作之一,除非您使用的是 Windows Server。
    的頭像 發(fā)表于 03-31 09:27 ?1135次閱讀

    linuxfind用法詳解

    Linux中, find 命令是一個非常強大的工具,用于在指定目錄下查找文件和目錄。下面是 find 命令的用法和詳細解釋: 語法: find
    的頭像 發(fā)表于 11-08 14:29 ?633次閱讀

    linux常用命令及用法

    Linux是一種開源的操作系統(tǒng),它以穩(wěn)定、高效和安全的特點受到廣大用戶的喜愛。掌握Linux的常用命令及其用法對于操作系統(tǒng)的管理和開發(fā)都至關
    的頭像 發(fā)表于 11-17 09:47 ?592次閱讀

    Linux lsof命令的基本用法

    linux 系統(tǒng)中,一切皆文件。通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),還可以訪問網(wǎng)絡連接和硬件。所以 lsof 命令不僅可以查看進程打開的文件、目錄,還可以查看進程監(jiān)聽的端口等 socket 相關的信息。本文將介紹 lsof 命令的基本用法,本文中 demo 的演示
    的頭像 發(fā)表于 10-23 11:52 ?97次閱讀
    <b class='flag-5'>Linux</b> lsof命令的基本<b class='flag-5'>用法</b>