整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Linux系統上使用find命令查找文件的N種案例

          關注本頭條號,每天堅持更新原創干貨技術文章。

          如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習

          1. 前言

          本文主要講解在Linux系統上如何使用find命令

          find命令怎么用

          2. `find`命令的使用方法

          要開始搜索整個硬盤,您需要輸入以下內容:

          find /
          

          但是,如果您想開始搜索當前所在的文件夾,那么可以使用find命令以下語法:

          find .
          

          當您想在整個硬盤中按名稱搜索文件時,請使用find命令以下語法:

          假設你要搜索的文件名為filename

          find / -name filename
          

          find命令的第一部分顯然是單詞find。

          第二部分是從哪里開始搜索。即指定目錄,它會自動搜索指定目錄里的子目錄

          第三部分是一個表達式,它決定要查找什么。

          最后一部分是要找的文件名。

          find命令使用方法

          3. `find`命令搜索位置的快捷方式

          find之后的第一個參數是要搜索的位置。雖然可以指定特定的目錄,但是大多數人使用元字符作為替代。使用這個命令的三個元字符包括:

          句點:指定當前文件夾和所有嵌套文件夾

          左斜杠/:指定整個文件系統

          波浪符號~:指定活動用戶的主目錄

          提示:搜索整個文件系統可能會產生許多訪問拒絕錯誤。一般的用戶賬號都會遇到權限的問題,這時,應該使用提升的特權運行該命令(例如,使用sudo)。

          表達式

          最常用的表達式是-name。name表達式允許搜索文件或文件夾的名稱。

          然而,你也可以用其他的表達方式:

          -amin n: 該文件最后一次訪問是在n分鐘前

          -anewer: 最后一次訪問該文件的時間比修改該文件的時間晚

          -atime n: 該文件最后一次被訪問是在n天前

          -cmin n: 文件最后一次更改是在n分鐘前

          -cnewer: 文件最后一次更改的時間比文件修改的時間更近

          -ctime n: 文件最后一次更改是在n天前

          -empty: 文件為空

          -executable: 該文件是可執行的

          -false: 總是錯誤的

          -fstype type: 該文件位于指定的文件系統上

          -gid n: 該文件屬于ID為n的組

          -group groupname: 該文件屬于指定的組

          -ilname pattern: 搜索符號行,但忽略大小寫

          -iname pattern: 搜索文件但忽略大小寫

          -inum n: 搜索具有指定節點的文件

          -ipath path: 搜索路徑但忽略大小寫

          -iregex expression: 搜索表達式但忽略大小寫

          -links n: 搜索具有指定鏈接數量的文件

          -lname name: 搜索符號鏈接

          -mmin n: 文件的數據最后一次修改是在n分鐘之前

          -mtime n: 文件的數據上次修改是在n天前

          -name name: 搜索具有指定名稱的文件

          -newer name: 搜索最近編輯的文件,而不是給定的文件

          -nogroup: 搜索沒有組id的文件

          -nouser: 搜索沒有附加用戶的文件

          -path path: 查找路徑

          -readable: 查找可讀的文件

          -regex pattern: 搜索匹配正則表達式的文件

          -type type: 搜索特定類型

          -uid uid: 文件數字用戶id與uid相同

          -user name: 文件由指定的用戶擁有

          -writable: 搜索可寫入的文件

          4. `find`命令使用案例

          find命令使用案例

          如何查找訪問文件超過一定天數的前幾天

          要查找100天前訪問過的主文件夾中的所有文件,請:

          find ~ -atime 100
          

          如何找到空的文件和文件夾

          要查找系統中的所有空文件和文件夾:

          find / -empty 
          

          如何找到所有的可執行文件

          要在你的電腦上找到所有可執行文件:

          find / -exec
          

          如何找到所有可讀的文件

          要找到所有可讀的文件:

          find / -read
          

          模式

          在搜索文件時,可以使用模式。例如,搜索擴展名為mp3的所有文件:

          find / -name *.mp3
          

          如何將Find命令的輸出發送到文件

          find命令的主要問題是,它有時會返回太多的結果,無法一次性查看。通過管道將輸出輸出到tail命令,或者您可以將這些行輸出到一個文件中,如下所示:

          find / -name *.mp3 -fprint nameoffiletoprintto
          

          如何查找并對文件執行命令

          同時搜索和編輯一個文件:

          find / -name filename -exec nano '{}' \;
          

          上面的命令搜索一個名為filename的文件,然后為它找到的文件運行nano編輯器。

          5. 結論

          通過本文,你應該對find命令怎么用有所了解了吧?這是Linux運維中最常用的命令了,一定要學習使用。

          本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下鏈接:

          https://www.linuxrumen.com/rmxx/1291.html

          點擊了解更多,快速查看更多的技術文章列表。

          關注本頭條號,每天堅持更新原創干貨技術文章。

          如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習

          1. 前言

          本文主要講解如何在Linux系統下使用命令行工具模糊查找文件,本文的工具包括find命令的用法也介紹grep命令的使用方法,同時也有find與grep兩者結合,能更精確根據條件查找文件。

          linux模糊查找文件命令

          2. 根據文件名模糊查找文件

          例如:

          在目錄/var/zcwyou里,找到.txt后綴的文件,文件名大小寫敏感。即只能匹配.txt后綴的

          [root@zcwyou ~]# find /var/zcwyou -name '*.txt'
          

          在目錄/var/zcwyou里,找到.txt后綴的文件,忽略大小定。即可以匹配.txt后綴,也可以匹配.Txt后綴,也可以匹配.TXT后綴的文件。

          [root@zcwyou ~]# find /var/zcwyou -iname '*.txt'
          

          linux根據文件名模糊查找文件

          3. 根據文件名和文件內容模糊查找文件

          使用方法:

          結合find命令與xargs和grep -i ‘目標匹配關鍵字’

          案例1:

          在當前目錄搜索文件內容含有某字符串(大小寫敏感)的文件:

          語法:

          find /etc/ -type f | xargs grep '目標關鍵詞'

          案例2:

          在/etc/目錄下,查找帶zcwyou關鍵詞的文件

          [root@zcwyou ~]# find /etc/ -type f | xargs grep 'zcwyou'
          

          可以找到以下文件和文件對應的內容:

          /etc/group-:zcwyou:x:1000:

          /etc/gshadow-:zcwyou:!!::

          /etc/passwd-:zcwyou:x:1000:1000:zcwyou:/home/zcwyou:/bin/bash

          /etc/group:zcwyou:x:1000:zcwyou

          /etc/shadow-:zcwyou:

          是不是非常高效?

          案例3:

          在當前目錄搜索文件內容含有某字符串(忽略大小寫)的特定文件:

          借用find命令查找當前目錄下所有以.c后綴結尾的文件和子目錄里以.c后綴結尾的文件,并把結果以參數形式傳遞給grep,由grep進行搜索和過濾。

          [root@zcwyou ~]#find . -type f -name ‘*.c’ | xargs grep -i '目標搜索關鍵詞'
          

          linux根據文件名和文件內容模糊查找文件

          4. 使用`find`命令模糊查找linux文件

          在當前目錄下,模糊查找在系統中最后10分鐘訪問的文件

          [root@zcwyou ~]# find . -amin -10
          

          在當前目錄下,模糊查找在系統中最后48小時訪問的文件

          [root@zcwyou ~]# find . -atime -2
          

          在當前目錄下,查找在系統中為空的文件或者文件夾

          [root@zcwyou ~]# find . -empty
          

          在當前目錄下,查找在系統中屬于group cat的文件

          [root@zcwyou ~]# find . -group cat
          

          模糊查找在系統中最后5分鐘里修改過的文件

          [root@zcwyou ~]# find . -mmin -5
          

          查找在系統中最后24小時里修改過的文件

          [root@zcwyou ~]# find . -mtime -1
          

          使用find命令模糊查找linux文件

          5. 根據用戶屬性模糊查找Linux文件

          查找在系統中屬于作廢用戶的文件

          [root@zcwyou ~]# find . -nouser
          

          查找在系統中屬于zcwyou這個用戶的文件

          [root@zcwyou ~]# find . -user zcwyou
          

          根據用戶屬性模糊查找Linux文件

          6. 通過文件大小模糊查找文件

          查找根目錄下超過1M的文件,并打印

          [root@zcwyou ~]# find / -size +1M -type f -print
          

          查找當前目錄下等于500字節的文件,包括子目錄,并打印結果

          [root@zcwyou ~]# find -size 500c -print
          

          查找home目錄下小于600k的文件

          [root@zcwyou ~]# find /home -size -600k -print
          

          linux通過文件大小模糊查找文件

          7. 通過文件新舊查找文件

          查找比old.txt新的文件

          [root@zcwyou ~]# find -newer "old.txt" -type f -print
          

          查找比newer.txt舊的文件

          [root@zcwyou ~]# find ! -newer "newer.log" -type f -print
          

          查找比old.txt新,比newer.txt舊的文件

          [root@zcwyou ~]# find -newer 'old.txt' ! -newer 'newer.txt' -type f -print
          

          本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下鏈接:

          https://www.linuxrumen.com/rmxx/1137.html

          點擊了解更多,快速查看更多的技術文章列表。

          關注本頭條號,每天堅持更新原創干貨技術文章。

          如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習

          1. 前言

          本文主要介紹Linux系統下有哪些全局搜索命令,并講解相關命令的使用方法與日常使用案例。

          我們先來了解一下Linux下主要的5個全局搜索的命令工具。他們分別是find,locate,grep,which,whereis

          其中,find是一個強大實時搜索工具,Linux支持的文件類型它都可以搜索到,locate一般是搜索文件,grep一般是搜索文本文件,which和whereis一般是用于搜索程序相關的文件內容。

          linux全局搜索命令

          2. Linux使用find命令全局搜索文件

          find命令在某個目錄下查找。

          一般使用格式:

          find <pathname> <-option> <filetype> <action> 
          

          -pathname:所要查找的目錄及其所有子目錄(默認遞歸查找)。默認為當前目錄。

          -option:指定參數。

          -filetype:想要查找的文件類型。

          -action:對查找結果進行的處理。

          在linux的日常管理中,使用find命令全局搜索文件的使用頻率很高,熟練掌握以及靈活運用對提高工作效率很有幫助。

          find的語法比較簡單,常用參數的就那么幾個,比如-name、-type、-ctime等。本文只是介紹其中一些常用的使用案例,如果需要更多的幫助,請參考find的使用手冊。

          2.1 Linux使用`find`命令根據文件名全局搜索文件

          搜索當前目錄下名字為mypic.png的文件

          [root@zcwyou ~]# find . -name "mypic.png"
          

          搜索當前目錄下所有的jpg文件

          [root@zcwyou ~]# find . -name "*.jpg"
          

          搜索當前目錄下的jpg文件和png文件

          [root@zcwyou ~]# find . -name "*.jpg" -o -name "*.png"
          

          搜索當前目錄下不是以png結尾的文件

          [root@zcwyou ~]# find . ! -name "*.png"
          

          2.2 使用`find`命令根據正則表達式全局查找文件

          搜索當前目錄下,文件名以數字+png后綴結尾的文件。

          [root@zcwyou ~]# find . -regex "\./*[0-9]+\.png" 
          

          2.3 使用`find`命令和指定的目錄路徑查找文件

          搜索當前目錄下,路徑中包含folder的文件/路徑。

          [root@zcwyou ~]# find . -path "*folder*"
          

          2.4 使用`find`命令根據文件類型查找

          通過-type進行文件類型的過濾。

          • f 普通文件
          • l 符號連接
          • d 目錄
          • c 字符設備
          • b 塊設備
          • s 套接字
          • p Fifo

          比如,搜索當前目錄下,路徑中包含zcwyou的文件

          [root@zcwyou ~]# find . -type f -path "*zcwyou*"
          

          2.5 Linux根據搜索深度查找文件

          搜索當前目錄下所有以txt后綴結尾的文件,不包括子目錄。

          [root@zcwyou ~]# find . -maxdepth 1 -name "*.txt"
          

          相對應的,也是mindepth選項。

          [root@zcwyou ~]# find . -mindepth 2 -maxdepth 2 -name "*.png"
          

          2.6 Linux使用`find`命令根據文件大小搜索文件

          通過-size來過濾文件尺寸。支持的文件大小單元如下

          - b 表示塊(512字節)

          - c 表示字節

          - w 表示字(2字節)

          - k 表示千字節

          - M 表示兆字節

          - G 表示吉字節

          比如,使用find命令搜索當前目錄下文件大小超過100M的文件

          [root@zcwyou ~]# find . -type f -size +100M 
          

          2.7 根據文件的訪問、修改、變化時間全局搜索文件

          支持下面的時間類型。

          • 訪問時間(-atime/天,-amin/分鐘):用戶最近一次訪問時間。
          • 修改時間(-mtime/天,-mmin/分鐘):文件最后一次修改時間。
          • 變化時間(-ctime/天,-cmin/分鐘):文件數據元(例如權限等)最后一次修改時間。

          全局查找的案例1:搜索1天內被修改過的文件

          [root@zcwyou ~]# find . -type f -mtime -1
          

          全局查找的案例2:搜索最近1周內被訪問過的文件

          [root@zcwyou ~]# find . -type f -atime -7
          

          將日志目錄里超過一周的日志文件,移動到/tmp/log里。

          [root@zcwyou ~]# find . -type f -mtime +7 -name "*.log" -exec mv {} /tmp/log \;
          

          注意:{} 用于與-exec選項結合使用來匹配所有文件,然后會被替換為相應的文件名。

          另外,\;用來表示命令結束,如果沒有加,則會有如下提示

          find: -exec: no terminating ";" or "+"

          關于find命令更多的使用方法請參考本站的另一帖

          Linux find命令查找文件34個實用案例

          根據文件的訪問、修改、變化時間全局搜索文件

          3. Linux使用`locate`命令全局搜索文件

          locate命令在系統的全局范圍內查找。

          一般使用格式:

          locate <-option> <filetype>
          

          -option:指定參數。

          -filetype:想要查找的文件類型。

          locate常用參數

          -d:指定要查找的數據庫路徑

          -h: 顯示輔助訊息

          -i:忽略大小寫

          -q:安靜模式,不會顯示任何錯誤訊息。

          -n:至多顯示 n個輸出。

          -r: 使用正規運算式 做尋找的條件。

          -o: 指定資料庫存的名稱。

          -V: 顯示程式的版本訊息

          簡單的使用案例:

          [root@zcwyou ~]# locate abc.txt
          

          /usr/share/123/456/abc.txt

          提示

          locate是從數據庫中讀取數據,而不是從文件系統中讀取。從數據庫中讀取時是讀取updatedb命令返回的結果:

          而updatedb命令默認是一天(24小時)才自動運行一次,這就意味著如果是最新創建的文件,使用locate命令可能查找不到。

          所以在使用locate命令前,先手動運行updatedb命令(需要root權限),非root用戶可以借助sudo取得root權限:

          [root@zcwyou ~]# updatedb
          

          Linux使用locate命令全局搜索文件

          4. Linux使用`grep`命令對文本文件進行全局搜索關鍵字

          和find及locate命令不同的是,grep命令是在指定文件中搜索特定的內容,然后將包含有這些匹配內容的行輸出到標準輸出。如果不指定文件名,則從標準輸入讀取內容。grep命令經常和find等命令結合使用,其中grep常充當“過濾器”的角色。

          grep命令常用參數

          -c: 只輸出匹配行的行數。

          -h: 查詢多文件時不顯示文件名。

          -I: 不區分大小寫(只適用于單字符)。

          -n: 顯示匹配的行和行號。

          -s: 不顯示 不存在或無匹配文本 的錯誤信息。

          -v: 反向匹配,即顯示不包含匹配文本的所有行。

          -R: 遞歸查詢,即連同子目錄中的文件一起查詢。

          使用案例:

          在當前目錄下遞歸查找包含字符串"hello"的所有文件,并顯示匹配行的行號

          格式:grep -Rn "搜索的關鍵字" ~

          例如:

          [root@zcwyou ~]# grep -Rn "www.linurumen.com" ~
          

          Linux使用grep命令對文本文件進行全局搜索關鍵字

          5. 使用`which`命令全局搜索linux程序文件

          which命令將在PATH變量指定的路徑中 查找某個系統命令的位置,并且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。

          例如,查看當前環境下使用的是哪個bash:

          [root@zcwyou ~]# which passwd
          

          6. 使用`whereis`命令全局搜索linux程序文件

          whereis命令用來定位二進制文件(參數-b)、源代碼文件(參數-s)和幫助手冊文件(即man文件,參數-m)。如果省略參數,則返回所有信息。

          whereis命令使用案例

          [root@zcwyou ~]# whereis bash
          

          7. 總結:

          上面介紹的linux全局搜索命令有5個,每個都有特定的功能,每一個系統運維人員都要牢記和掌握它的使用方法,隨時能高效查找和搜索目標文件。

          本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下鏈接:

          https://www.linuxrumen.com/rmxx/1139.html

          點擊了解更多,快速查看更多的技術文章列表。


          主站蜘蛛池模板: 色综合视频一区二区三区44| 高清在线一区二区| 一区二区国产精品| 日韩一区二区视频在线观看| 亚州国产AV一区二区三区伊在| 亚洲AV无码一区二区三区久久精品 | 国产美女精品一区二区三区| 美女免费视频一区二区| 亚洲av无码片vr一区二区三区| 久久亚洲一区二区| 日本免费电影一区二区| 国产高清在线精品一区二区 | 日本一区二区在线免费观看| 日韩一区二区a片免费观看| 激情内射亚洲一区二区三区| 香蕉久久一区二区不卡无毒影院 | 国产精品无码一区二区三级 | 无码人妻一区二区三区av| 任你躁国语自产一区在| 一区二区视频在线| 久久亚洲日韩精品一区二区三区| 亚洲成AV人片一区二区| 色欲AV蜜臀一区二区三区 | 亚洲熟女综合一区二区三区| 亚洲AV本道一区二区三区四区| 精品一区二区三区中文字幕| 中文字幕色AV一区二区三区| 日本亚洲成高清一区二区三区| 久久国产免费一区| 呦系列视频一区二区三区| 无码视频一区二区三区| 精品在线视频一区| 红桃AV一区二区三区在线无码AV| 免费萌白酱国产一区二区三区| 岛国无码av不卡一区二区| 国产成人无码一区二区在线播放 | 国产精品无码一区二区三区不卡| 亚洲丶国产丶欧美一区二区三区| 国产未成女一区二区三区| 国产一区二区三区免费在线观看| 日韩av片无码一区二区三区不卡 |