服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - Linux 命令find之查找文件的示例

Linux 命令find之查找文件的示例

2022-03-02 17:03維C果糖 Linux

這篇文章主要介紹了Linux 命令find之查找文件的示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在 linux 命令中,find用于在指定目錄下查找文件。任何位于參數之前的字符串都將被視為欲查找的目錄名,其支持按名稱查找、按正則表達式查找、按文件大小查找、按文件權限查找等多種查詢方式。如果在使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件,并且將查找到的子目錄和文件全部進行顯示。

語法:find + 目標目錄(路徑) + <選項> + 參數

常用選項列表

 

選項 含義
-perm <權限數值> 查找符合指定的權限數值的文件或目錄
-type <文件類型> 只尋找符合指定的文件類型的文件
-name <范本樣式> 指定字符串作為尋找文件或目錄的范本樣式
-expty 尋找文件大小為 0 byte 的文件,或目錄下沒有任何子目錄或文件的空目錄
-ls 假設find指令的回傳值為ture,就將文件或目錄名稱列出到標準輸出
-maxdepth <目錄層級> 設置最大目錄層級
-mindepth <目錄層級> 設置最小目錄層級
-exec <執行指令> 假設find指令的回傳值為true,就執行該指令
-ok <執行指令> 此參數的效果和指定-exec類似,但在執行指令之前會先詢問用戶,若回答y或y,則放棄執行命令

 

示例

首先,給出演示使用的文件結構:

Linux 命令find之查找文件的示例

示例 1:查找當前目錄及其子目錄下所有文件和文件夾

?
1
find .

Linux 命令find之查找文件的示例

示例 2:在/testlinux目錄下查找以.txt結尾的文件名

?
1
2
// 需要書寫完整的路徑
find /tmp/cg/testlinux -name "*.txt"

Linux 命令find之查找文件的示例

示例 3:組合查找文件名以file1開頭(與、或、非)file2開頭的文件

?
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * 組合查找語法:
 * -a    與(取交集)
 * -o    或(取并集)
 * -not   非(同 ?。?/code>
 * !     非(同 not)
 */
 
find . -name "file1*" -a -name "file2*"
find . -name "file1*" -o -name "file2*"
find . -name "file1*" -not -name "file2*"
find . -name "file1*" ! -name "file2*"

Linux 命令find之查找文件的示例

示例 4:根據文件類型進行搜索

?
1
2
3
4
5
/**
 * 查找當前目錄及所有子目錄下的普通文件
 */
 
find . -type f

Linux 命令find之查找文件的示例

示例 5:基于目錄深度進行搜索

?
1
2
3
4
5
6
7
8
9
10
11
/**
 * 限制最大深度為 3
 */
 
find . -maxdepth 3 -type f
 
/**
 * 限制最大深度為 2
 */
 
find . -maxdepth 2 -type f

Linux 命令find之查找文件的示例

示例 6:基于文件權限進行搜索

?
1
2
3
4
5
6
7
8
9
10
11
/**
 * 搜索權限為 777 的文件
 */
 
find . -type f -perm 777
 
/**
 * 搜索 .txt 格式且權限不為 777 的文件
 */
 
find . -type f -name "*.txt" ! -perm 777

Linux 命令find之查找文件的示例

示例 7:借助-exec命令,將當前目錄及子目錄下所有.txt格式的文件以file:文件名的形式打印出來

?
1
find . -type f -name "*.txt" -exec printf "file: %s\n" {} \;

Linux 命令find之查找文件的示例

示例 8:借助-exec命令,將當前目錄及子目錄下所有 3 天前的.txt格式的文件復制一份到old目錄

?
1
find . -type f -mtime +3 -name "*.txt" -exec cp {} old \;

Linux 命令find之查找文件的示例

文件類型參數列表

 

文件類型參數 含義
f 普通文件
l 符號連接
d 目錄
c 字符設備
b 塊設備
s 套接字
p fifo

 

文件大小單元列表

 

文件大小單元 含義
b 塊(512 字節)
c 字節
w 字(2 字節)
k 千字節
m 兆字節
g 吉字節

 

選項列表

 

選項 含義
-amin <分鐘> 查找在指定時間曾被存取過的文件或目錄,單位以分鐘計算
-atime <24小時數> 查找在指定時間曾被存取過的文件或目錄,單位以 24 小時計算
-cmin <分鐘> 查找在指定時間之時被更改過的文件或目錄
-ctime <24小時數> 查找在指定時間之時被更改的文件或目錄,單位以 24 小時計算
-anewer <參考文件或目錄> 查找其存取時間較指定文件或目錄的存取時間更接近現在的文件或目錄
-cnewer <參考文件或目錄> 查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄
-daystart 從本日開始計算時間
-depth 從指定目錄下最深層的子目錄開始查找
-expty 尋找文件大小為 0 byte 的文件,或目錄下沒有任何子目錄或文件的空目錄
-exec <執行指令> 假設find指令的回傳值為true,就執行該指令
-false 將find指令的回傳值皆設為false
-fls <列表文件> 此參數的效果和指定-ls參數類似,但會把結果保存為指定的列表文件
-follow 排除符號連接
-fprint <列表文件> 此參數的效果和指定-print參數類似,但會把結果保存成指定的列表文件
-fprint0 <列表文件> 此參數的效果和指定-print0參數類似,但會把結果保存成指定的列表文件
-fprintf <列表文件> <輸出格式> 此參數的效果和指定-printf參數類似,但會把結果保存成指定的列表文件
-fstype <文件系統類型> 只尋找該文件系統類型下的文件或目錄
-gid <群組識別碼> 查找符合指定群組識別碼的文件或目錄
-group <群組名稱> 查找符合指定群組名稱的文件或目錄
-help或——help 在線幫助
-name <范本樣式> 指定字符串作為尋找文件或目錄的范本樣式
-iname <范本樣式> 此參數的效果和指定-name參數類似,但忽略字符大小寫的差別
-ilname <范本樣式> 此參數的效果和指定-lname參數類似,但忽略字符大小寫的差別
-inum <inode編號> 查找符合指定的inode編號的文件或目錄
-path <范本樣式> 指定字符串作為尋找目錄的范本樣式
-ipath <范本樣式> 此參數的效果和指定-path參數類似,但忽略字符大小寫的差別
-iregex <范本樣式> 此參數的效果和指定-regexe參數類似,但忽略字符大小寫的差別
-links <連接數目> 查找符合指定的硬連接數目的文件或目錄
-ls 假設find指令的回傳值為ture,就將文件或目錄名稱列出到標準輸出
-maxdepth <目錄層級> 設置最大目錄層級
-mindepth <目錄層級> 設置最小目錄層級
-mmin <分鐘> 查找在指定時間曾被更改過的文件或目錄,單位以分鐘計算
-mount 此參數的效果和指定-xdev相同
-mtime <24小時數> 查找在指定時間曾被更改過的文件或目錄,單位以 24 小時計算
-newer <參考文件或目錄> 查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄
-nogroup 找出不屬于本地主機群組識別碼的文件或目錄
-noleaf 不去考慮目錄至少需擁有兩個硬連接存在
-nouser 找出不屬于本地主機用戶識別碼的文件或目錄
-ok <執行指令> 此參數的效果和指定-exec類似,但在執行指令之前會先詢問用戶,若回答y或y,則放棄執行命令
-perm <權限數值> 查找符合指定的權限數值的文件或目錄
-print 假設find指令的回傳值為ture,就將文件或目錄名稱列出到標準輸出,格式為每列一個名稱,每個名稱前皆有./字符串
-print0 假設find指令的回傳值為ture,就將文件或目錄名稱列出到標準輸出,格式為全部的名稱皆在同一行
-printf <輸出格式> 假設find指令的回傳值為ture,就將文件或目錄名稱列出到標準輸出,格式可以自行指定
-prune 不尋找字符串作為尋找文件或目錄的范本樣式
-regex <范本樣式> 指定字符串作為尋找文件或目錄的范本樣式
-size <文件大小> 查找符合指定的文件大小的文件
-true 將find指令的回傳值皆設為true
-type <文件類型> 只尋找符合指定的文件類型的文件
-uid <用戶識別碼> 查找符合指定的用戶識別碼的文件或目錄
-used <日數> 查找文件或目錄被更改之后在指定時間曾被存取過的文件或目錄,單位以日計算
-user <擁有者名稱> 查找符和指定的擁有者名稱的文件或目錄
-version或——version 顯示版本信息
-xdev 將范圍局限在先行的文件系統中
-xtype <文件類型> 此參數的效果和指定-type參數類似,差別在于它針對符號連接檢查

 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/qq_35246620/article/details/79104520

延伸 · 閱讀

精彩推薦
  • Linux如何在 Linux 系統設置打印機

    如何在 Linux 系統設置打印機

    如果系統沒有自動檢測到你的打印機,這篇文章教你如何在 Linux 系統手動添加打印機。...

    Linux中國8872021-09-02
  • Linuxlinux之sed用法

    linux之sed用法

    sed是一個很好的文件處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作,下面先了解一...

    linux教程網3912019-11-07
  • Linux2021 年的十二件 Linux 大事

    2021 年的十二件 Linux 大事

    2021 年即將結束。Linux 今年屢有大事,雖然并不全是好消息。讓我來分享一些來自 Linux 世界的大事,這些事件對普通的 Linux 用戶,特別是桌面 Linux 用戶有...

    Linux中國11352021-12-21
  • LinuxLinux SSH遠程文件/目錄傳輸命令scp使用詳解

    Linux SSH遠程文件/目錄傳輸命令scp使用詳解

    scp是secure copy的簡寫,用于在Linux下進行遠程拷貝文件的命令,這篇文章主要介紹了Linux SSH遠程文件/目錄傳輸命令scp使用詳解,需要的朋友可以參考下 ...

    Linux教程網5532019-11-20
  • Linux詳解Linux中的守護進程

    詳解Linux中的守護進程

    這篇文章主要介紹了詳解Linux中的守護進程的相關資料,需要的朋友可以參考下...

    he_shuai206012022-01-24
  • Linux清除指定squid緩存文件的腳本代碼分享

    清除指定squid緩存文件的腳本代碼分享

    Squid web緩存加速軟件目前已經是新浪、搜狐、網易等各大網站廣泛應用。Squid會在設置的緩存目錄下建立多個目錄,每一個目錄下又建立多個目錄,然后才...

    Linux教程網10422021-04-10
  • LinuxLinux lsof 命令使用詳細說明

    Linux lsof 命令使用詳細說明

    lsof(list open files)是一個列出當前系統打開文件的工具。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網...

    未知1472019-05-20
  • Linux通過案例深入解析linux NFS機制

    通過案例深入解析linux NFS機制

    這篇文章主要介紹了通過案例深入解析linux NFS機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參...

    盜哥泡茶去了4692020-09-21
欧美日韩色另类综合|亚洲中文字幕无码一区|99国产真实露脸精彩对白|d专干日本老太婆|欧美狂野可乐视频在线观看