linux搜尋檔案

2021-10-02 17:39:03 字數 4013 閱讀 6394

linux下搜尋檔案常用方法

這個命令比較常用,例如查詢bin、python、vim、find、cat的絕對路徑

root@ip-172-31-8-212:~# which find /usr/bin/find root@ip-172-31-8-212:~# which bash /bin/bash root@ip-172-31-8-212:~# which python /usr/bin/python root@ip-172-31-8-212:~# which vim /usr/bin/vim

-b:只查詢二進位制檔案

-m:支叉子幫助檔案(查詢man目錄下的檔案)

-s:支叉子源**檔案

root@ip-172-31-8-212:~# whereis ls

ls: /bin/ls /usr/share/man/man1/ls.1.gz

模糊查詢,whereis命令很少使用

locate命令也是通過查詢預先生成的檔案列表庫來告訴使用者要查詢的檔案在**,後面直接跟檔名,如果沒有此命令,需要進行安裝,安裝命令如下:

yum install -y mlocate
此命令是使用較多的乙個,格式為:find 【路徑】 【引數】

# linux檔案無建立時間

# access 使用時間

# modify 內容修改時間

# change 狀態改變時間(許可權、屬主)

# 時間預設以24小時為單位,當前時間到向前24小時為0天,向前48-72小時為2天

# -and 且 匹配兩個條件 引數可以確定時間範圍 -mtime +2 -and -mtime -4

# -or 或 匹配任意乙個條件

find /etc -name "*http*" # 按檔名查詢

find . -type f # 查詢某一型別檔案

find / -perm # 按照檔案許可權查詢

find / -user # 按照檔案屬主查詢

find / -group # 按照檔案所屬的組來查詢檔案

find / -atime -n # 檔案使用時間在n天以內

find / -atime +n # 檔案使用時間在n天以前

find / -mtime +n # 檔案內容改變時間在n天以前

find / -ctime +n # 檔案狀態改變時間在n天前

find / -mmin +30 # 按分鐘查詢內容改變

find / -size +1000000c -print # 查詢檔案長度大於1m位元組的檔案

find /etc -name "*passwd*" -exec grep "xuesong" {} \; # 按名字查詢檔案傳遞給-exec後命令

find . -name 't*' -exec basename {} \; # 查詢檔案名,不取路徑

find . -type f -name "err*" -exec rename err err {} \; # 批量改名(查詢err 替換為 err {}檔案

find 路徑 -name *name1* -or -name *name2* # 查詢任意乙個關鍵字

find /var/adm -mtime +3 -print #為了在/var/adm目錄下查詢更改時間在3日以前的檔案

find . -newer age.awk ! -newer belts.awk -exec ls -l {} \; #查詢更改時間唄檔案age.awk新但比檔案belts.awk舊的檔案

find /etc -type d -print #查詢/etc目錄下所有的目錄

find /etc ! -type d -print #查詢/etc下除了目錄之外的所有型別的檔案

find /etc -type l -print #查詢/etc下所有的符號鏈結檔案

例項如下:

find命令例項

簡單地使用find命令查詢指定目錄下的某個檔案的方法如下:

#find /etc -name inittab

/etc/inittab

#在當前目錄下,查詢名稱為inittab的檔案:

#find . -name inittab ./inittab

#找出當前目錄下,檔名不區分大小寫是example的所有檔案:

$find . -iname example

./example ./example

#找出當前目錄下,目錄名是tmp的目錄:

$ find . -type d -name tmp

./tmp

#找出當前目錄下所有s**件:

$ find . -type f -name "*.sh"

./login.sh ./index.sh

#找出當前目錄下,檔案許可權是777的所有檔案:

$find. -type f -perm 0777

#找出當前目錄下,檔案許可權不是777的所有檔案:

$ find . -type f ! -perm 777

#找出/etc/目錄下所有唯讀檔案:

find . -type f ! -perm /a+w

#找出你賬號的主目錄下的所有可執行檔案:

$ find ~ -type f -perm /a+x

#找出/tmp目錄下的.log檔案並將其刪除:

$find /tmp/ -type f -name "*.log" -exec rm -f {} \;

#找出當前目錄下的所有空檔案:

$find . -type f -empty

#找出當前目錄下的所有空目錄:

$find . -type d –empty

#找出/tmp目錄下的所有隱藏檔案:

$find /tmp/ -type f -name ".*"

#找出/tmp目錄下,所有者是root的檔案和目錄:

$find /tmp/ -user root

#找出/tmp目錄下,使用者組是developer的檔案和目錄:

$find /tmp/ -group developer

#找出你賬號的主目錄下,3天前修改的檔案:

$ find ~ -type f -mtime 3

#找出你賬號的主目錄下,30天以前修改的所有檔案:

$ find ~ -type f -mtime +30

#找出你賬號的主目錄下,3天以內修改的所有檔案:

$ find ~ -type f -mtime -3

#找出你賬號的主目錄下,30天以前60天以內修改的所有檔案:

$ find ~ -type f -mtime +30 -mtime -60

#找出/etc目錄下,一小時以內變更過的檔案:

find /etc -type f –cmin -60

#找出/etc目錄下,一小時以內訪問過的檔案:

find /etc -type f -amin -60

#找出你賬號的主目錄下,大小是50mb的所有檔案:

$find ~ -type f -size 50mb

#找出你賬號的主目錄下,大於50mb小於100mb的所有檔案:

$ find ~ -type f -size +50mb -size -100mb

#找出你賬號的主目錄下,大於100mb的檔案並將其刪除:

$ find ~ -type f -size +100mb -exec rm –rf {} \;

Linux搜尋檔案

1 linux下最強大的搜尋命令為 find 它的格式為 find 指定目錄 指定條件 指定動作 比如使用find命令搜尋在根目錄下的所有inte ces檔案所在位置,命令格式為 find name inte ces 使用locate搜尋linux系統中的檔案,它比find命令快。因為它查詢的是資料...

Linux檔案搜尋

1 whereis簡單快捷,從資料庫中搜尋,whereis 只能搜尋二進位制檔案 b man 幫助檔案 m 和源 檔案 s whereis b who 只查詢名為who的可執行檔案2 locate 快而全,本質通過通過 var lib mlocate mlocate.db 資料庫查詢,系統自動每天更...

Linux之搜尋檔案

命令 whereis which find locate root server whereis whereis whereis usr bin whereis usr share man man1 whereis.1.gz root server whereis find find usr bin...