當前位置:首頁 » 操作系統 » linuxfind查找文件

linuxfind查找文件

發布時間: 2023-05-03 14:27:24

A. linux find 命令詳解

find 命令的基本結構如下:
find [paths] [expression] [actions]

find 命令接受一個或多個 路徑 ( paths )作為搜索范圍,並在該路徑下 遞歸 地搜索。即檢索完指定的目錄後,還會對該目錄下的子目錄進行檢索,以及子目錄下的子目錄。。。直到到達目錄樹底部。

默認情況下(不帶任何搜索條件),find 命令會返回指定目錄下的 所有文件 ,所以常常需要通過特定的 expression 對結果進行 篩選

find 命令默認的 action 是將所有檢索結果列印至標准輸出。可以通過自定義 action ,讓 find 命令對搜索到的結果執行特定的操作。

這里先不做詳細解釋,簡單地測試下 find 命令:

find 命令中的 -name 選項可以根據文件名稱進行檢索( 區分大小寫 )。如需要忽略文件名中的大小寫,可以使用 -iname 選項。

-name 和 -iname 兩個選項都支持 wildcards 。如:

find /usr -name '*.txt' 查找 /usr 目錄下所有文件名以 .txt 結尾的文件
find /usr -name '????' 查找 /usr 目錄下所有文件名剛好為 4 個字元的文件

有些時候,你需要在搜索時匹配某個文件或目錄的 完整路徑 ,而不僅僅是匹配文件名。可以使用 -path 或 -ipath 選項。

如查找 /usr 下所有文件名以 .txt 結尾的文件或目錄,且該文件的父目錄必須是 src 。可以使用以下命令:
find /usr -path '*/src/*.txt'

如果只想搜索得到文件 目錄,即不想它們同時出現在結果中。可以使用 -type 選項指定文件類型。

-type 選項最常用的參數如下:

find /usr -type d -name 'python*' 檢索 /usr 下所有文件名以 python 開頭的 目錄

find 命令支持 -empty 選項用來檢索 為空 的文件或目錄。空文件即文件里沒有任何內容,空目錄即目錄中沒有任何文件或子目錄。

find ~ -type d -empty 檢索用戶主目錄下所有的空目錄

find 命令也允許用戶對當前的匹配條件進行 「反義」 (類似於 邏輯非 操作)。

如需要檢索 /usr 下所有文件名 以 .txt 為後綴的文件。可以使用以下命令:
find /usr -type f ! -name '*.txt'

也可以「翻轉」任何其他的篩選條件,如:
find /usr -type f ! -empty 檢索 /usr 下所有內容不為空的文件

為了檢索歸屬於特定用戶的文件或目錄,可以使用 -user 選項。

find / -type f -user starky 檢索根目錄下所有屬主為 starky 的文件

類似於 -user 選項, -group 選項則可以根據文件或目錄的 屬組 進行檢索。

有些時候,需要根據文件創建或修改的時間進行檢索。

Linux 系統中,與文件相關聯的時間參數有以下三種:

與此對應的是 find 命令中的 -mtime , -atime 和 -ctime 三個選項。

這三個選項的使用遵循以下示例中的規則:

find /usr -type f -mtime 2 檢索 /usr 下兩天前被修改過的文件

如果覺得 -mtime 等選項以 為單位時間有點長,還可以使用 -mmin , -amin , -cmin 三個選項:
find /usr -type f -mtime +50 -mtime -100 檢索 /usr 下 50 到 100 天之前修改過的文件
find /usr -type f -mtime 2 -amin 5 檢索 /usr 下兩天前被修改過且 5 分鍾前又讀取過的文件

-size 選項允許用戶通過文件大小進行搜索(只適用於文件,目錄沒有大小……)。

表示文件大小的單位由以下字元組成:

另外,還可以使用 + 或 - 符號表示 大於 小於 當前條件。

find / -size +1G 檢索文件大小高於 1 GB 的文件

find 命令可以使用 -perm 選項以文件許可權為依據進行搜索。

如需要檢索 /usr 目錄下許可權為 rwxr-xr-x 的文件,可以使用以下命令:
find /usr -perm u=rwx,g=rx,o=rx

搜索 /usr 目錄下所有許可權為 r-xr-xr-x (即系統中的所有用戶都只有讀寫許可權)的文件和目錄,可以使用以下命令:
find /usr -perm a=rx

很多時候,我們只想匹配文件許可權的一個 子集 。比如,檢索可以直接被任何用戶執行的文件,即只關心文件的執行許可權,而不用管其讀寫許可權是什麼。

上述的需求可以通過以下命令實現: find / -type f -perm /a=x
其中 a=x 前面的 / 符號即用來表示只匹配許可權的某個子集(執行許可權),而不用關心其他許可權的具體設置。

-perm 選項也支持數字形式的文件許可權標記。

find /usr -perm 644 搜索 /usr 目錄下許可權為 644 (即 rwxr-xr-x )的文件

find 命令默認是以 遞歸 的方式檢索項目的,這有時候會導致得到的結果數量非常巨大。可以使用 -maxdepth 限制 find 命令遞歸的層數。

find / -maxdepth 3 搜索時向下遞歸的層數最大為 3

在之前的例子中有出現多個搜索條件的 組合 以及對某個搜索條件的 反轉
實際上 find 命令支持 「and」 「or」 兩種邏輯運算,對應的命令選項分別是 -a 和 -o 。通過這兩個選項可以對搜索條件進行更復雜的組合。

此外還可以使用 小括弧 對搜索條件進行 分組 。注意 find 命令中的小括弧常需要用 單引號 包裹起來。因小括弧在 Shell 中有特殊的含義。

如檢索 /usr 下文件名以 python 開頭且類型為目錄的文件
find /usr -type d -name 'python*'

該命令等同於:
find /usr -type d -a -name 'python*'

更復雜的組合形式如:
find / '(' -mmin -5 -o -mtime +50 ')' -a -type f

-delete 選項可以用來刪除搜索到的文件和目錄。

如刪除 home 目錄下所有的空目錄:
find ~ -type d -empty -delete

-exec 選項可以對搜索到的結果執行特定的命令。

如需要將 home 目錄下所有的 MP3 音頻文件復制到移動存儲設備(假設路徑是 /media/MyDrive ),可使用下面的命令:
find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ''

其中的 大括弧 ( {} )作為檢索到的文件的 佔位符 ,而分號( ; )作為命令結束的標志。因為分號是 Shell 中有特殊含義的符號,所以需要使用單引號括起來。
每當 find 命令檢索到一個符合條件的文件,會使用其完整路徑取代命令中的 {} ,然後執行 -exec 後面的命令一次。

另一個很重要的用法是,在多個文件中檢索某個指定的字元串。
如在用戶主目錄下的所有文件中檢索字元串 hello ,可以使用如下命令:
find ~ -type f -exec grep -l hello {} ''

創建 Gzip 格式的壓縮文件的命令為: tar -czvf filename.tar.gz <list of files>

現在假設需要將用戶主目錄下所有的 MP3 文件添加到壓縮包 music.tar.gz 中,直觀的感覺是,其命令應為如下形式:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ''

實際情況是,這樣得到的 music.tar.gz 其實只包含一個 MP3 文件。
原因是 find 命令 每次 發現一個音頻文件,都會再執行一次 -exec 選項後面的壓縮命令。導致先前生成的壓縮包被覆蓋。

可以先讓 find 命令檢索出所有符合條件的音頻文件,再將得到的 文件列表 傳遞給後面的壓縮命令。完整的命令如下:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +

如果想瀏覽搜索到的文件(目錄)的詳細信息(如許可權和大小等),可以直接使用 -ls 選項。

find / -type file -size +1G -ls 瀏覽所有 1G 以上大小的文件的詳細信息

A Guide to the Linux 「Find」 Command
find 命令手冊 : man find

B. linux find的用法

不明白問題所在阿,自問自答

man find

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

這個真的要看你實現什麼功能

C. Linux下find命令和grep命令查找文件

在使用linux時,經常需要進行文件查找。其中查找的命令主要有find和grep。
兩個命令是有區的。
(1)find命令是根據文件的屬性進行查找,如文件名,文件大小,所有者,所屬組,是否為空,訪問時間,修改時間等。
(2)grep是根據文件的內容進行查找,會對文件的每一行按照給定的模式(patter)進行匹配查找。

一.find命令

基本格式:find path expression

1.按照文件名查找

(1)find / -name httpd.conf
在根目錄下查找文件httpd.conf,表示在整個硬碟查找

(2)find /etc -name httpd.conf
在/etc目錄下文件httpd.conf

(3)find /etc -name ' srm '
使用通配符*(0或者任意多個)。表示在/etc目錄下查找文件名中含有字元串『srm』的文件

(4)find . -name 'srm*'
表示當前目錄下查找文件名開頭是字元串『srm』的文件

D. Linux中在當前目錄下查找某個文件。

1、打開shell連接工具,連接上伺服器,pwd查看當前目錄,一般進來默認在主目錄下。

E. linux find命令詳解

find命令可將檔案系統內符合 expression 的檔案列出來。你可以指要檔案的名稱、類別、時間、大小、許可權等不同資訊的組合,只有完全相符的才會被列出來。

find 根據下列規則判斷 path 和 expression,在命令列上第一個 - ( ) , ! 之前的部分為 path,之後的是 expression。還有指DOS 命令 find,Excel 函數 find等。

(5)linuxfind查找文件擴展閱讀:

linux的其他類似find命令詳解:grep

用於查找文件中符合字元串的那行。

e.g. grep -nr "network_ssl" ./ [查找當前文件夾下所有文件內容,列出包含有 network_ssl該字串的行,並顯示行號]

參數說明:-a :將 binary 文件以 text 文件的方式搜尋數據

-c :計算找到 '搜尋字元串' 的次數

-i :忽略大小寫的不同,所以大小寫視為相同

-n :順便輸出行號

-v :反向選擇,亦即顯示出沒有 '搜尋字元串' 內容的那一行!

F. linux如何查找文件

1、使用find命令

Linuxfind命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄或文件。並且將查找到的子目錄和文件全部進行顯示。

語法:find path -option [ -print ] [ -exec -ok command ] {} ;

2、使用locate命令

Linux locate命令用於查找符合條件的文檔,他會去保存文檔和目錄名稱的資料庫內,查找合乎範本樣式條件的文檔或目錄。

一般情況我們只需要輸入locate your_file_name即可查找指定文件。

語法:locate [-d ][--help][--version][範本樣式...]

3、使用which命令

Linux which命令用於查找文件。

which指令會在環境變數$PATH設置的目錄里查找符合條件的文件。

語法:which [文件...]

4、使用whereis命令

Linux whereis命令用於查找文件。

該指令會在特定目錄中查找符合條件的文件。這些文件應屬於原始代碼、二進制文件,或是幫助文件。

該指令只能用於查找二進制文件、源代碼文件和man手冊頁,一般文件的定位需使用locate命令。

語法:whereis [-bfmsu][-B <目錄>...][-M <目錄>...][-S<目錄>...][文件...]

G. Linux常用命令詳解 | find

find 命令的基本結構如下:

find 命令手冊 : man find

find 命令中的 -name 選項可以根據文件名稱進行檢索( 區分大小寫 )。如需要忽略文件名中的大小寫,可以使用 -iname 選項。

-name 和 -iname 兩個選項都支持 wildcards 。如:

例1:查找 /usr 目錄下所有文件名以 .txt 結尾的文件

例2:查找 /usr 目錄下所有文件名剛好為 4 個字元的文件

例3:查以大寫字母開頭的文件

例4:查以兩個小寫字母和兩個數字開頭的txt文件

類似的還有:
-lname -ilname
-path -ipath
-regx -iregx

有些時候,你需要在搜索時匹配某個文件或目錄的 完整路徑 ,而不僅僅是匹配文件名。可以使用 -path 或 -ipath 選項。

例1:如查找 /usr 下所有文件名以 .txt 結尾的文件或目錄,且該文件的父目錄必須是 src 。可以使用以下命令:

例2:在當前目錄除aa之外的子目錄內搜索 txt文件

例3:在當前目錄,不再子目錄中,查找txt文件

如果只想搜索得到文件 目錄,即不想它們同時出現在結果中。可以使用 -type 選項指定文件類型。

-type 選項最常用的參數如下:

例:檢索 /usr 下所有文件名以 python 開頭的目錄

find 命令支持 -empty 選項用來檢索 為空 的文件或目錄。空文件即文件里沒有任何內容,空目錄即目錄中沒有任何文件或子目錄。

例:檢索用戶主目錄下所有的空目錄

find 命令也允許用戶對當前的匹配條件進行 「反義」 (類似於 邏輯非 操作)。

如需要檢索 /usr 下所有文件名 以 .txt 為後綴的文件。可以使用以下命令:

也可以「翻轉」任何其他的篩選條件,如:檢索 /usr 下所有內容不為空的文件

為了檢索歸屬於特定用戶的文件或目錄,可以使用 -user 選項。
例:檢索根目錄下所有屬主為 starky 的文件

類似於 -user 選項, -group 選項則可以根據文件或目錄的 屬組 進行檢索。

有些時候,需要根據文件創建或修改的時間進行檢索。

Linux 系統中,與文件相關聯的時間參數有以下三種:

與此對應的是 find 命令中的 -mtime , -atime 和 -ctime 三個選項。

這三個選項的使用遵循以下示例中的規則:

檢索 /usr 下兩天前被修改過的文件

如果覺得 -mtime 等選項以 為單位時間有點長,還可以使用 -mmin , -amin , -cmin 三個選項。

查找比 aa.txt 的文件

查找比 aa.txt 的文件

查找比aa.txt新,比bb.txt舊的文件

-size 選項允許用戶通過文件大小進行搜索(只適用於文件,目錄沒有大小……)。

表示文件大小的單位由以下字元組成:

另外,還可以使用 + 或 - 符號表示 大於 小於 當前條件。

檢索文件大小高於 1 GB 的文件

find 命令可以使用 -perm 選項以文件許可權為依據進行搜索。

9.1使用符號形式

例1:如需要檢索 /usr 目錄下許可權為 rwxr-xr-x 的文件,可以使用以下命令:

例2:搜索 /usr 目錄下所有許可權為 r-xr-xr-x (即系統中的所有用戶都只有讀寫許可權)的文件和目錄,可以使用以下命令:

很多時候,我們只想匹配文件許可權的一個 子集 。比如,檢索可以直接被任何用戶執行的文件,即只關心文件的執行許可權,而不用管其讀寫許可權是什麼。

上述的需求可以通過以下命令實現:

其中 a=x 前面的 / 符號即用來表示只匹配許可權的某個子集(執行許可權),而不用關心其他許可權的具體設置。

9.2使用數字形式
例如:搜索 /usr 目錄下許可權為 644 (即 rwxr-xr-x )的文件

find 命令默認是以 遞歸 的方式檢索項目的,這有時候會導致得到的結果數量非常巨大。可以使用 -maxdepth 限制 find 命令遞歸的層數。

例如:搜索時向下遞歸的層數最大為 3

在之前的例子中有出現多個搜索條件的 組合 以及對某個搜索條件的 反轉
實際上 find 命令支持 「and」 「or」 兩種邏輯運算,對應的命令選項分別是 -a 和 -o 。通過這兩個選項可以對搜索條件進行更復雜的組合。

此外還可以使用 小括弧 對搜索條件進行 分組 。注意 find 命令中的小括弧常需要用 單引號 包裹起來。因小括弧在 Shell 中有特殊的含義。

如檢索 /usr 下文件名以 python 開頭且類型為目錄的文件

該命令等同於:

更復雜的組合形式如:

例4:在除dir0及子目錄以外的目錄下查找txt後綴文件

說明:-a 應該是and的縮寫,意思是邏輯運算符『與』(&&); -o應該是or的縮寫,意思是邏輯運算符『或』(||), -not 表示非.

命令行的意思是:如果目錄dir0存在(即-a左邊為真),則求-prune的值,-prune 返回真,『與』邏輯表達式為真(即-path './dir0*' -a -prune 為真),find命令將在除這個目錄以外的目錄下查找txt後綴文件並列印出來;如果目錄dir0不存在(即-a左邊為假),則不求值-prune ,『與』邏輯表達式為假,則在當前目錄下查找所有txt後綴文件。

-delete 選項可以用來刪除搜索到的文件和目錄。

例如:刪除 home 目錄下所有的空目錄:

-exec 選項可以對搜索到的結果執行執行該參數所給出的shell命令。形式為 command {} ; ,注意{}與;之間有空格 。每當 find 命令檢索到一個符合條件的文件,會使用其完整路徑取代命令中的 {} ,然後執行 -exec 後面的命令一次。

例1:如需要將 home 目錄下所有的 MP3 音頻文件復制到移動存儲設備(假設路徑是 /media/MyDrive ),可使用下面的命令:

其中的 大括弧 ( {} )作為檢索到的文件的 佔位符 ,而分號( ; )作為命令結束的標志。因為分號是 Shell 中有特殊含義的符號,所以需要使用單引號括起來或前面加上轉義符 。

例2:查看當前目錄下的所有普通文件,並在 - exec 選項中使用 ls -l 命令將它們列出

例3:在多個文件中檢索某個指定的字元串。如在用戶主目錄下的所有文件中檢索字元串 hello ,可以使用如下命令:

創建 Gzip 格式的壓縮文件的命令為:

現在假設需要將用戶主目錄下所有的 MP3 文件添加到壓縮包 music.tar.gz 中,直觀的感覺是,其命令應為如下形式:

實際情況是,這樣得到的 music.tar.gz 其實只包含一個 MP3 文件。原因是 find 命令 每次 發現一個音頻文件,都會再執行一次 -exec 選項後面的壓縮命令。導致先前生成的壓縮包被覆蓋。

可以先讓 find 命令檢索出所有符合條件的音頻文件,再將得到的 文件列表 傳遞給後面的壓縮命令。完整的命令如下:

如果想瀏覽搜索到的文件(目錄)的詳細信息(如許可權和大小等),可以直接使用 -ls 選項。

例如:瀏覽所有 1G 以上大小的文件的詳細信息

與exec作用相同,區別在於,在執行命令之前,都會給出提示,讓用戶確認是否執行

與 exec 作用相同 ,起承接作用。區別在於 |xargs 主要用於承接刪除操作 ,而 -exec 都可用 如復制、移動、重命名等

例1:查找以ap或may開頭的文件

例2:查硬連接數大於2的文件或目錄

例3:查找含特定字元串的文件。查找當前目錄下含有"the string you want find…"字元串的文件:

例4:從根目錄開始查tmpfile,一旦查到馬上刪除

例5:如何用find查找某一天更改的文件?可以使用這一行命令來實現:

A Guide to the Linux 「Find」 Command
https://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html
https://blog.csdn.net/l_liangkk/article/details/81294260
https://blog.csdn.net/hetoto/article/details/84101745
http://c.biancheng.net/view/779.html
http://blog.chinaunix.net/uid-24648486-id-2998767

https://www.runoob.com/linux/linux-comm-find.html

https://www.jb51.net/article/147275.htm

H. Linux中如何在指定目錄下查找文件

find顧名思義就是查找的意思,該命令是各種Linux發行版本中比較重要的、常用的一個命令。Linux下的find命令提供相當多的查找條件,功能比較強大,掌握這個命令之後,對平時的系統運維、管理工作可以達到事半功倍的效果。那麼Linux系統中find命令的用法是什麼?具體請看下文:

Linux

find命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件,並且將查找到的子目錄和文件全部進行顯示。

語法格式:

find path -option [ -print ] [ -exec -ok command ] {} \;

參數說明:

find根據下列規則判斷path和expression,在命令列上第一個-(),!之前的部分為path,之後的部分是expression。如果path是空字串則使用目前路徑,如果expression是空字串則使用-print為預設expression。

expression中可使用的選項有二三十個,在此只介紹常用的部分。

-mount,-xedv:只檢查和指定目錄在同一個文件系統下的文件,避免列出其他文件系統中的文件;

-amin n:在過去n分鍾內被讀取過;

-anewer file:比文件file更晚被讀取過的文件;

-atime n:在過去n天內被讀取過的文件;

-cmin n:在過去n分鍾內被修改過;

-cnewer file:比文件file更新的文件;

-ctime n:在過去n天內被修改過的文件;

-empty:空的文件-gid n or -group name:gid是n或是group名稱是name;

-ipath p,-path p:路徑名稱符合p的文件,ipath會忽略大小寫;

-name name,-iname name:文件名稱符合name的文件,iname會忽略大小寫;

-size n:文件大小是n單位,b代表512位元組的區塊,c表示字元數,k表示kilo bytes,w是二個位元組。

-type c:文件類型是C的文件。

I. 知識分享之Linux——find文件搜索命令

日常我們開發時,我們會遇到各種各樣的奇奇怪怪的問題(踩坑o(╯□╰)o),這個常見問題系列就是我日常遇到的一些問題的記錄文章系列,這里整理匯總後分享給大家,讓其還在深坑中的小夥伴有繩索能爬出來。
同時在這里也歡迎大家把自己遇到的問題留言或私信給我,我看看其能否給大家解決。

在Linux中我們經常需要查找一些文件或者根據文件內容進行查找到底在哪些文件裡面,這時就需要用到本節要講到的find命令了,這個命令可以讓我們進行查找到想要的文件,話不多說下面直接開始本節的干貨。

1、查找當前目錄下的指定文件(當前目錄向下無限極)

2、全文搜索符合於文件名的

3、不區分大小寫文件名的搜索

4、列出當前目錄及子目錄下的所有文件

5、查找近10天內被更新過的文件(-ctime 天 -cmin分鍾 )

6、根據文件內容查找文件

7、在特定文件類型下根據文件內容查找文件

以上就是我整理的常用的查詢文件命令,整理出來供大家一起使用,有需要補充的歡迎在留言區進行留言補充,謝謝大家~~~

熱點內容
29乘法手指速演算法 發布:2025-09-14 16:11:30 瀏覽:828
iosandroidhtml5 發布:2025-09-14 16:10:39 瀏覽:923
systemuiapk反編譯 發布:2025-09-14 15:46:44 瀏覽:991
php本地安裝 發布:2025-09-14 15:44:59 瀏覽:343
壓力大緩解壓力聽什麼歌 發布:2025-09-14 15:39:35 瀏覽:305
Java中文代碼 發布:2025-09-14 15:39:33 瀏覽:659
java除 發布:2025-09-14 15:38:59 瀏覽:577
python爬蟲存儲資料庫 發布:2025-09-14 15:29:03 瀏覽:947
解壓球捏不動 發布:2025-09-14 15:26:52 瀏覽:799
1的存儲形式 發布:2025-09-14 15:01:19 瀏覽:349