我們很多時候會忘記某個檔案在什麼位置,此時就需要進行檔案查詢。
linux檔案查詢主要是使用find命令來進行查詢,find命令可以通過不同的維度來定位到某個想要查詢的檔案。
find [查詢的範圍] [選項] [表示式] [動作]
使用示例如下:
[root@oldboy ~]
# find / -name "ls"
# 以根目錄下的所有檔案作為範圍,查詢名字是ls的檔案或目錄
/usr/bin/ls
注:查詢的範圍越小查詢的越快。
find邏輯運算子:
!或 -not:非
-a 或-and:並且
-o 或 -or: 或者
按照名稱查詢:
-name
-iname
使用示例如下:
[root@oldboy ~]
# find /etc -name "*ens32"
# 以/etc下的所有檔案作為範圍,查詢名字中以ens32結尾的檔案或目錄
[root@oldboy ~]
# find /etc -iname ".*ens32"
# 與上面的例子相同,唯一的區別在於iname引數不區分大小寫
[root@oldboy ~]
# find /etc ! -iname ".*ens32"
# 查詢所有/etc下不以ens32結尾的檔案或目錄
按照型別查詢:
-type
使用示例如下:
[root@oldboy ~]
# find /etc -type d
# 查詢/etc下的所有目錄檔案
[root@oldboy ~]
# find /bin/ -type l
# 查詢/bin下的所有型別是軟鏈結的
按照大小進行查詢:
-size
使用示例如下:
[root@oldboy ~]
# find /etc -size +5m
# 查詢/etc下大於5m的檔案
[root@oldboy ~]
# find /etc -size 5m
# 查詢/etc下等於5m的檔案
[root@oldboy ~]
# find /etc -size -5m
# 查詢/etc下小於5m的檔案
按照時間進行查詢:
-mtime
只能精確到天
使用示例如下:
[root@oldboy ~]
# find . -mtime +7
# 查詢當前目錄下最近一次修改時間是7天以前的,不包含當天
[root@oldboy ~]
# find . -mtime -7
# 查詢當前目錄下最近一次修改時間是7天內的內容,包含當天
[root@oldboy ~]
# find . -mtime 7
# 查詢當前目錄下最近一次修改時間是前第七天的內容,不包含當天
按照屬主進行查詢:
-user
使用示例如下:
[root@oldboy ~]
# find /home/ -user zhangsan
# 查詢/home下的所有屬主是zhangsan的檔案或目錄
按照屬組進行查詢:
-group
使用示例如下:
[root@oldboy ~]
# find /home/ -group root
# 查詢/home下的所有屬組是root的檔案或目錄
注意:我們使用find查詢的這些選項可以組合使用。
預設是-print 表示把查詢後的結果列印出來
-ls 表示以長格式顯示查詢的結果
-delete 表示刪除查詢到的檔案
-ok 自定義的shell命令:
使用示例如下:
[root@oldboy ~]
# find . -mtime +7 -ok rm -f {} \;
# 刪除前面查詢到的檔案或目錄,每次執行操作都會要求使用者確認
-exec 自定義的shell命令
使用示例如下:
[root@oldboy ~]
# find . -mtime +7 -exec rm -f {} \;
# 刪除前面查詢到的檔案或目錄,每次執行操作無需使用者確認
相比之下,執行速度-exec並不如使用xargs的速度快,因此,實際過程中盡可能還是使用xargs的方式去操作查詢到的檔案更好一點。
問:以知檔案內容,怎麼查詢檔案在**?
我們可以使用find與grep結合使用便能查詢到目標檔案。
[root@oldboy ~]
# find . | xargs grep -ir "password" --color = auto
檔案查詢 find
find 查詢目錄 引數 檔案名字 find usr name time.c 使用萬用字元 find usr name ime.c find usr name ime.c 代表任意個字元 代表單個字元 touch命令用於修改檔案或者目錄的時間屬性,包括訪問時間和更改時間。若檔案不存在,系統會建立乙個...
find 檔案的查詢
這個命令在linux中是乙個比較強大的功能,它會在你指定的資料夾下可以很精確的查詢某乙個檔案。但是它同時有乙個缺點,就是會效率會比較低,所以我推薦當你去查詢某個檔案或者想知道某個命令的路徑時,先用whereis和locate這兩個命令先去試試,如果真查不到,再使用此命令。命令說明 root loca...
Linux檔案查詢find
列出資料夾下所有內容 包括目錄 檔案和子目錄中內容,深度優先遍歷 find 資料夾名以上方法列印出來檔案是以換行符分隔,可以連著列印而不分隔,當檔名中有換行符時用 find 資料夾名 print0根據名字查詢檔案 find 目錄名 name 檔名 以上命令中目錄名為要搜尋的目錄,檔名可以用萬用字元搜...