標籤:shell指令碼(二)
shell指令碼(二)
#find尋找檔案,以可根據時間、名稱、uid、gid、許可權、大小等條件尋找
#-amin -10:10分鐘之內訪問過的檔案或目錄;+10:10分鐘之前訪問過的檔案或目錄.時間單位為分鐘。
#尋找10分鐘之前30分鐘之內訪問過的檔案或目錄
find /home -amin +10 -a -amin -30
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/14/wKiom1Vyu6WAijEmAAEuwlLInbU403.jpg" />
#-atime -2:48小時內訪問過的檔案或目錄;+2:48小時之前訪問過的檔案或目錄。
#時間單位為24小時,即2*24=48小時。
#尋找1天之前3天之內訪問過的檔案或目錄
find /var/log/ -atime +1 -a -atime -30 -exec ls -l {} \;
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/10/wKioL1VyvUXCweg7AAE4iYY8UDg306.jpg" />
#-cmin -2:2分鐘之內修改過許可權屬性的檔案或目錄;+2:2分鐘之前修改過許可權屬性的檔案或目錄.時間單位為分鐘。
#尋找2分鐘之前60分鐘之內修改過許可權的檔案或目錄
find /home -cmin +2 -a -cmin -60
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/14/wKiom1Vyu6bzA5CQAAGk-M5D2Ic556.jpg" />
#-ctime -2:48小時內修改過許可權屬性的檔案或目錄;+2:48小時之前修改過許可權屬性的檔案或目錄。時間單位為24小時,即2*24=48小時。
#尋找3天之前5天之內修改過許可權屬性的檔案或目錄
find /var/log/ -ctime +3 -a -ctime -5 -exec ls -l {} \;
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/14/wKiom1Vyu6bj7GXyAAE0TVrI2aE695.jpg" />
#-mmin -2:2分鐘之內修改過內容的檔案或目錄;+2:2分鐘之前修改過內容的檔案#或目錄,時間單位為分鐘。
#尋找1分鐘之前30分鐘之內修改過檔案內容的檔案或目錄
find /home -mmin +1 -a -mmin -30
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/10/wKioL1VyvUawORMUAAENN7RUJfk650.jpg" />
#-mtime -2:48小時內修改過內容的檔案或目錄;+2:48小時之前修改過內容的檔案或目錄。時間單位為24小時,即2*24=48小時。
#尋找1天之前30天之內修改過內容的檔案或目錄
find /home -mtime +1 -a -mtime -30
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/14/wKiom1Vyu6ejCEhUAAIt9JLqmmE924.jpg" />
#-uid (+或-)數值(0):-10:表示小於10;+1:表示大小於;沒有+-5:表示等於5
#在目前的目錄下尋找uid=0的檔案或目錄
find . -uid 0
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/10/wKioL1VyvUfASs3YAAGoxyj7EuY271.jpg" />
#-gid (+或-)數值(0):-10:表示小於10;+1:表示大小於;沒有+-5:表示等於5
#在目前的目錄下尋找gid=0的檔案或目錄
find . -gid 0
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/10/wKioL1VyvUfylq6tAAGkykVAd0I532.jpg" />
#-name 尋找檔案或目錄名稱:可以使用*、+匹配符
#尋找/var/log/下所有以.log結尾檔案
find /var/log/*.log
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/14/wKiom1Vyu6jR64wIAACp9Ocl_j8224.jpg" />
#尋找目前的目錄下uid>0,gid<2223的檔案或者目錄
find . -uid +0 -gid -2223
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/10/wKioL1VyvUiTqMvJAAIjp_BxZDo454.jpg" />
#-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
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/14/wKiom1Vyu6nz_TrPAAG7G6nlC2c087.jpg" />
#+數值: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
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/10/wKioL1VyvUigAfxCAAIpRepvEpk722.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/14/wKiom1Vyu6mjXm3OAAISliXFUCs415.jpg" />
#mode:表示等於。
#尋找許可權值等於001的檔案或目錄
find . -perm 001
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/10/wKioL1VyvUmAaeU3AAGcs2praGQ029.jpg" />
#-size 檔案大小:-數值表示小於,+數值表示大於,沒有+-表示等於。
#尋找大於10k小於30k的檔案或目錄
find . -size +10 -size -30k
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/14/wKiom1Vyu6riaVnKAALY3mOqUQU023.jpg" />
#尋找大小等於4k的檔案或目錄,k可以換成m或者g
find . -size 10k
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/14/wKiom1Vyu6vw4VFYAAHndM7iYYg441.jpg" />
#-empty:尋找大小為0位元組檔案,或目錄下沒和任何子目錄或檔案的空目錄
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/10/wKioL1VyvUuQTM3-AAJRXhH2UkM558.jpg" />
#-exec shell命令:對尋找到的檔案或目錄執行shell命令
#尋找大於10k小於30k的檔案或目錄,並將它複製到/tmp
find . -size +10k -size -30k -exec cp -rf {} /tmp \;
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/10/wKioL1VyvUvgrHpuAACj5G8J3zw235.jpg" />
#whereis,-b:只尋找二進位檔案,-u:尋找不 包含指定類型的檔案,-B:只在指定目
#錄尋找二進位檔案,-M:只要指定目錄下尋找協助檔案
#-S:只在指定目錄尋找源碼檔案
#whereis只會在$PATH路徑下搜尋
whereis ls
#aaa檔案在/home下,並不在$PATH中,所以搜尋不到
whereis aaa
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/14/wKiom1Vyu6zCunMvAAFZ0a107kg151.jpg" />
#which,尋找可執行檔,如果是別名命令時會列出具體另外資訊
which ls
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/14/wKiom1Vyu6yC471rAABkdV4CMEc285.jpg" />
#locate,在已建立的檔案及路徑的資料庫中搜尋,一般搜尋前先更改一下資料庫
#如果不使用updatedb更新,那麼在系統啟動完畢後建立立的檔案是無法搜尋到的
#迷你安裝是沒有locate命令的,yum -y install mlocate安裝
#它依賴/var/lib/mlocate/mlocate.db資料庫
locate one_day
#建立一個檔案abcd123456,再尋找,因為沒有updatedb,所以是找不到檔案的
touch abcd123456
locate abcd123456
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/10/wKioL1VyvUyQQKm4AADVX8lpFJw423.jpg" />
本文出自 “愛就行動” 部落格,請務必保留此出處http://1055745601.blog.51cto.com/5003160/1659233
shell指令碼(二)