如何使用 Find 和 Locate 在 Linux 中搜尋檔案
搜尋檔案最直接的方法就是按名稱搜尋,要使用 find 命令按名稱查詢檔案,可以用以下語法:
find -name "query"
這種方式搜尋會區分大小寫。如果要按名稱查詢檔案但忽略大小寫,請使用
-iname
選項:
find -iname "query"
如果要查詢不匹配某個關鍵字的所有檔案,可以使用
-not
或者
!
反轉搜尋:
find -not -name "query_to_avoid" find ! -name "query_to_avoid"
也可以使用
-type
選項指定要查詢的檔案型別。如下操作,搜尋
/dev
目錄錄下的 b(塊裝置):
[root@Master ~]# find /dev -type b
以下是一些可用於指定檔案型別的選項:
-
f
: 常規檔案 -
d
: 目錄 -
l
: 符號連結 -
c
: 字元裝置 -
b
: 塊裝置
可以使用如下命令搜尋所有以 .conf 結尾的檔案。該示例在 /etc 目錄中搜尋匹配的檔案:
[root@Master ~]# find /etc -type f -name "*.conf"
find 提供了多種按檔案大小和時間過濾結果的方法。
可以使用
-size
引數按檔案大小過濾檔案。為此,必須在數值的末尾新增一個特殊的字尾,表示按位元組、兆位元組、千兆位元組還是其他大小來計算大小。以下是一些常用的尺寸字尾:
-
c
: bytes -
k
: kilobytes -
M
: megabytes -
G
: gigabytes -
b
: 512-byte blocks
為了說明這一點,以下命令將查詢 /usr 目錄中正好為 50c 的每個檔案、大於20M的檔案、小於1M的檔案:
[root@Master ~]# find /usr -size 50c [root@Master ~]# find /usr -size +20M [root@Master ~]# find /usr -size -1M
對於系統上的每個檔案, 都儲存有關訪問時間、修改時間和更改時間的時間資料。
-
-atime
: Access Time, 檔案最後一次被讀寫的時間. -
-mtime
: Modification Time, 檔案內容最後一次被修改的時間. -
-ctime
: Change Time, 檔案的inode後設資料最後一次更改的時間.
例如,要查詢 /usr 目錄中最近一天內修改過的檔案,請執行以下命令:
[root@Master ~]# find /usr -mtime 1
如果查詢最近兩天內訪問過的檔案,可以執行以下命令:
[root@Master ~]# find /usr -atime -2
要查詢上次更改元資訊超過 3 天的檔案,可以執行以下操作:
[root@Master ~]# find /usr -ctime +3
這些選項還具有可用於指定分鐘而不是天的配套引數,這將給出在一分鐘內修改過的檔案。:
[root@Master ~]# find /var/log -mmin -1
還可以分別使用
-user
和
-group
引數按擁有檔案的使用者或組搜尋檔案。若要查詢
chrony
使用者在
/var
目錄中擁有的檔案,請執行以下命令:
[root@Master ~]# find /var -user chrony
同樣,可以通過鍵入以下命令指定
kmem
組在
/etc
目錄中擁有的檔案 :
[root@Master ~]# find / -group kmem
也可以使用
-perm
選項搜尋指定許可權的檔案:
[root@Master ~]# find /var/log -perm 644
你可以使用以下語法使用
-exec
引數對找到匹配項的所有內容執行任意操作。
{}
用作查詢匹配檔案的佔位符。這
\;
讓 find 知道命令在哪裡結束。
例如,查詢
/etc
目錄中的
*.conf
檔案,並使用
ls -l
列出檔案資訊:
[root@Master ~]# find /etc -name "*.conf" -exec ls -l {} \;
使用 find 的替代方法是 locate 命令。此命令通常更快,並且可以輕鬆搜尋整個檔案系統。在
8中,可以使用yum包管理器來安裝
mlocate
包:
[root@Master ~]# yum -y install mlocate
locate 比 find 快的原因是它依賴於列出檔案系統上所有檔案的資料庫。該資料庫通常每天使用 cron
更新一次,但也可以使用
updatedb
命令手動更新它。下面執行此命令:
[root@Master ~]# updatedb
例如搜尋關鍵字"anaconda",會快速的顯示出匹配的檔案:
[root@Master ~]# locate anaconda
可以使用 -S 選項檢索有關 locate 已儲存資訊的統計:
[root@Master ~]# locate -S Database /var/lib/mlocate/mlocate.db: 8,393 directories 73,262 files 4,632,907 bytes in file names 1,948,600 bytes used to store database
find 和 locate 命令都是在系統上查詢檔案的有用工具。兩者都是強大的命令,可以通過管道將它們與其他實用程式結合來加強。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2849825/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 搜尋命令總結 – whereis,which,locate,find,grepLinux
- Linux系統下find、locate命令如何使用?Linux
- Find Any File for Mac(檔案搜尋)Mac
- 檔案搜尋工具:Find Any File for MacMac
- Linux 檔案搜尋神器 find 實戰詳解,建議收藏!Linux
- 簡單檔案搜尋:Find Any File for MacMac
- Find Any File for Mac檔案搜尋軟體Mac
- Find Any File for Mac(檔案搜尋軟體)Mac
- 檔案搜尋工具:Find Any File Mac版Mac
- 在ZOHO企業網盤中如何快速搜尋檔案?
- 查詢指定的檔案:find、locate、which、whereis
- Linux常用命令之檔案查詢which、find、locate命令講解Linux
- 精通 Linux 上的檔案搜尋Linux
- 在 Linux 中如何歸檔檔案和目錄Linux
- Win10系統中搜尋框搜尋不到本地應用和檔案如何解決Win10
- locate標頭檔案和庫檔案
- 在 Linux中find命令使用技巧Linux
- 如何使用find和xargs查詢和處理檔案
- 在Linux中,如何建立、刪除和修改檔案?Linux
- 如何在Mac電腦中搜尋隱藏檔案?Mac
- 詳解Linux指令與檔案的搜尋Linux
- 檔案智慧搜尋
- 在 Linux 中輕鬆搜尋和安裝 Google Web 字型LinuxGoWeb
- 在 Linux 中如何移動檔案Linux
- 在Linux系統中,預設的標頭檔案搜尋路徑是/usr/include和/usr/local/includLinux
- 在Linux中,如何使用logrotate命令管理日誌檔案?Linuxlogrotate
- Linux 搜尋檔案和資料夾的 4 種簡單方法Linux
- 專業的本地檔案搜尋查詢器:Find Any File (FAF) for MacMac
- Linux中的查詢命令:find、locate、whereis、which、type及其區別Linux
- ProFind Mac版 - 檔案管理和搜尋工具Mac
- 在Linux中,如何管理和最佳化日誌檔案?Linux
- 在Linux中,如何使用grep命令查詢檔案中的內容?Linux
- linux 查詢檔案命令 findLinux
- win10如何搜尋檔案或資料夾 win10怎麼全盤搜尋檔案Win10
- 在 Linux 中如何刪除檔案中的空行Linux
- win10搜尋檔案在哪裡 檢視搜尋檔案位置的方法Win10
- 在Linux中,如何建立、檢查和修復檔案系統?Linux
- 在Linux中,如何實現檔案系統的快照和克隆?Linux