shell腳本(二)


shell腳本(二)

#find查找文件,以可根據時間、名稱、uid、gid、權限、大小等條件查找

#-amin -10:10分鐘之內訪問過的文件或目錄;+10:10分鐘之前訪問過的文件或目錄.時間單位爲分鐘。

#查找10分鐘之前30分鐘之內訪問過的文件或目錄

find /home -amin +10 -a -amin -30

#-atime -2:48小時內訪問過的文件或目錄;+2:48小時之前訪問過的文件或目錄。

#時間單位爲24小時,即2*24=48小時。

#查找1天之前3天之內訪問過的文件或目錄

find /var/log/ -atime +1 -a -atime -30 -exec ls -l {} \;

#-cmin  -2:2分鐘之內修改過權限屬性的文件或目錄;+2:2分鐘之前修改過權限屬性的文件或目錄.時間單位爲分鐘。

#查找2分鐘之前60分鐘之內修改過權限的文件或目錄

find /home -cmin +2 -a -cmin -60

#-ctime -2:48小時內修改過權限屬性的文件或目錄;+2:48小時之前修改過權限屬性的文件或目錄。時間單位爲24小時,即2*24=48小時。

#查找3天之前5天之內修改過權限屬性的文件或目錄

find /var/log/ -ctime +3 -a -ctime -5 -exec ls -l {} \;

#-mmin  -2:2分鐘之內修改過內容的文件或目錄;+2:2分鐘之前修改過內容的文件#或目錄,時間單位爲分鐘。

#查找1分鐘之前30分鐘之內修改過文件內容的文件或目錄

find /home -mmin +1 -a -mmin -30

#-mtime -2:48小時內修改過內容的文件或目錄;+2:48小時之前修改過內容的文件或目錄。時間單位爲24小時,即2*24=48小時。

#查找1天之前30天之內修改過內容的文件或目錄

find /home -mtime +1 -a -mtime -30

#-uid (+或-)數值(0):-10:表示小於10;+1:表示大小於;沒有+-5:表示等於5

#在當前目錄下查找uid=0的文件或目錄

find . -uid 0

#-gid (+或-)數值(0):-10:表示小於10;+1:表示大小於;沒有+-5:表示等於5

#在當前目錄下查找gid=0的文件或目錄

find . -gid 0

#-name 查找文件或目錄名稱:可以使用*、+匹配符

#查找/var/log/下所有以.log結尾文件

find /var/log/*.log

#查找當前目錄下uid>0,gid<2223的文件或者目錄

find . -uid +0 -gid -2223

#-perm mode:

#-數值:mode轉換成二進制,四個值中二進制位有1的地方一定要匹配,如0700(111000000)

#0700-7777都與之匹配,可以理解爲大於0700的都匹配

#查找權限大於744的文件或目錄,因爲mode第1個爲7,全爲1,所以所有屬主

#權限不爲7的都不會符合,同時羣組權限數值爲4、5(4+1)、7(4+2+1),相與有1

#符合要求,其他權限要求與羣組權限一樣要求,所以test目錄符合要求

find . -perm -744

#+數值:mode轉換成二進制,四個值中二進制位任何有1的地方

#有其中1個值相與等於1就可以了

#+001與只要最後一位權限數值是1、5(=4+1)、7(=4+2+1)的權限都匹配

#查找包含有權限值001的文件或目錄

#user3、user4和user5權限與001相與,都沒有1,所以不符合要求,而ddd

#其他權限中相與有1,所以符合要求

#+mode可以理解爲包含有此mode模式的都符合要求

find . -perm +001

#mode:表示等於。

#查找權限值等於001的文件或目錄

find . -perm 001

#-size 文件大小:-數值表示小於,+數值表示大於,沒有+-表示等於。

#查找大於10k小於30k的文件或目錄

find . -size +10 -size -30k

#查找大小等於4k的文件或目錄,k可以換成m或者g

find . -size 10k

#-empty:查找大小爲0字節文件,或目錄下沒和任何子目錄或文件的空目錄

#-exec shell命令:對查找到的文件或目錄執行shell命令

#查找大於10k小於30k的文件或目錄,並將它複製到/tmp

find . -size +10k -size -30k -exec cp -rf {} /tmp \;

#whereis,-b:只查找二進制文件,-u:查找不 包含指定類型的文件,-B:只在指定目

#錄查找二進制文件,-M:只要指定目錄下查找幫助文件

#-S:只在指定目錄查找源碼文件

#whereis只會在$PATH路徑下搜索

whereis ls

#aaa文件在/home下,並不在$PATH中,所以搜索不到

whereis aaa

#which,查找可執行文件,如果是別名命令時會列出具體另外信息

which ls

#locate,在已建立的檔案及路徑的數據庫中搜索,一般搜索前先更改一下數據庫

#如果不使用updatedb更新,那麼在系統啓動完畢後新建立的文件是無法搜索到的

#最小化安裝是沒有locate命令的,yum -y install mlocate安裝

#它依賴/var/lib/mlocate/mlocate.db數據庫

locate one_day

#新建一個文件abcd123456,再查找,因爲沒有updatedb,所以是找不到文件的

touch abcd123456

locate abcd123456

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章