1. which:node
a) 文件要在PATH目錄下ide
b) 文件必須是執行(+x)權限的ui
2. Whereisspa
a) 搜索路徑也有侷限遞歸
b) 搜索的是模糊文件,只要包含相關的關鍵字it
3.Locate 須要安裝(yum –y install mlocate)io
a) 每次都須要updatedbclass
b)搜索的是模糊文件,只要包含相關的關鍵字date
c) 不會搜索/tmp下的文件搜索
4. Find + 路徑 + [option] + 文件名(aming, 「aming*」)
a) –name
b) –type f (c)
c) –mtime +10(大於10天)
d) –atime
e) –ctime
f) –mmin -5(小於5分鐘)
g) –num + inode數字(ls -li)
h) 用法1: find /var/log –type f | xargs rm 查到30天的文件都刪除
i) 用法2:find /tmp/ -type f | xargs –I mv {} {}.bak
find -perm mode , 表示嚴格匹配,也就是你的文件權限位轉換成對應的十進制數字與mode如出一轍
find -perm -mode , 表示mode中轉換成二進制的1在文件權限位裏面必須匹配,0無論
find -perm +mode , 與 -mode的區別是+mode只需其中的任意一個1的部分被匹配,-mode是全部1的部分都必須被匹配,一樣+mode也無論0位。
atime:訪問時間,mtime:更改權限,在文件寫入時,ctime:更改權限或者修改時
查看三個時間,用stat +文件。其中echo 不修改一個文件的atime
使用命令echo "111111" >> 1.txt 會更改1.txt的哪幾個time?
A atime
B ctime
C mtime
D 三個都會改
正確答案:B,C
例子:
sudo find /etc -size +1M -exec echo {} \;
#在/etc目錄下找文件大小在1M以上的文件而且顯示,文件用換行符隔開。
sudo find /etc -size +1M | xargs echo
#達到-exec相同的功能可是用空格分開尋找到的文件。
#-exec後面的{} \;是不能少的。
find 緊跟的是指定開始尋找的絕對路徑,我取當前路徑。
find ./ -user 用戶名
#find後面接的是開始尋找路徑名,它會在這個路徑下遞歸尋找。
#-user 指定用戶名
find ./ -not -user 用戶名
find ./ -not -name 文件名
find ./ -not -type 類型(通常文件f,目錄d,字符文件c)
#尋找不匹配的文件。
find ./ -user 用戶名 -o -type f
#尋找當前目錄下用戶你指定用戶文件或者(-o)通常文件。
find ./ -size +1M -o -type d
#尋找當前目錄下文件大於1M的文件或者是目錄。
find ./ -size -1M -a -type f
#尋找當前目錄下文件小於1M而且文件類型是通常文件的文件。
-o 是或者的意思
-a 是並且的意思
-not 是相反的意思
根據上面再從find的尋找方式中任意組合你樂意的方式。
find /etc -not -perm mode(222)
find /etc -not -perm -mode(-222)
find /etc -not -perm +mode(+222)
#-perm是按文件權限來查找文件
mode是徹底匹配所對應的權限,若是不包括suid/sgid/sticky
-mode是權限位轉化爲二進制以後的1必須所有匹配,+mode則須要其中任何一個1被匹配。
-mode應該包含mode,+mode則包含-mode。