課程內容linux
一、文件查找之find命令詳解
數據庫
二、文件特殊權限詳解
ide
三、linux中的任務計劃實現詳解
ui
四、facl及while和until循環
spa
1、文件查找:根據文件各類屬性找到相對應文件的過程。orm
文本搜索:文件查找和文本搜索的區別是什麼?
索引
grep,egrep,fgrep 這些是字符串的匹配的查找,原本grep是不能找文件自己的。grep集合管資源
道來實現文件查找。
字符串
文件查找:locate,find
it
非實時查找:根據數據庫或者索引來查找 (locate),依賴於索引,而索引構建至關 佔用資源,索引的建立是在系統空閒是有系統自動進行(天天執行的任務);
手動執行使用updatedb命令。查找速度快,非精準查找。
實時查找:遍歷全部文件進行條件匹配 (find)
精準查找、精確匹配、速度慢
find [option]...[查找路徑][查找條件][處理動做]
查找路徑:默認爲當前目錄
查找條件:默認爲指定路徑下的全部文件
處理動做:默認爲顯示在屏幕
查找條件:-name"文件名稱":支持使用globbing字符(*、?、[]、[^])
-iname"文件名稱":支持globbing,忽律字符大小寫
-user username:根據文件的屬主查找
-group groupname :根據文件的屬組查找
-UID -GID:根據用戶ID號查找
注意:刪除一個用戶後,其屬主、屬組還有ID號,可使用UID GID查找。
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
組合條件查找:與:-a 同時知足,或:-o 知足一個條件,非:-not,!,條件取反
-not A -a -not B = -not (A -o B)
-not A -o -not B = -not (A -a B)
舉例:find /etc -not -user root -a -name "p*[0-9]*" -ls ;find /etc -user root
根據文件類型查找:-type TYPE
f:普通文件
d:目錄文件
l:符號連接
b:塊設備
c:字符設備
s:套接字文件
p:命名管道
-size [+|-]#UNIT 經常使用單位: k, M, G
#UNIT: #-1 < x <= #
-#UNIT: x <= #-1
+#UNIT: x > #
根據時間戳查找:以「天」爲單位
-atime [+|-]#
+#:x >= #+1
-#:x < #
#: # <= x < #+1
-mtime
-ctime
以「分鐘」爲單位
-amin
-mmin
-cmin
根據權限查找:
-perm [+|-]MODE
MODE: 與MODE精確匹配
find ./ -perm 644
+MODE: 任何一類用戶的權限只要能包含對其指定的任何一位權限便可;以屬主爲例,
find ./ -perm +222
-MODE:每類用戶指定的檢查權限都匹配:
爲三類用戶全部指定的檢查權限都可以被包含
find ./ -perm -222
處理動做:
-print: 默認處理動做,顯示
-ls:相似於ls -l
-exec COMMAND {} \;
-ok COMMAND {} \;
find: 一次性查找符合條件的全部文件,並一同傳遞給給-exec或-ok後面指定的命令;但,有些命令不能接受過長的參數;此時使用另外一種方式
find | xargs COMMAND
總結:find [查找路徑] [查找條件] [處理動做]
查找條件:
-name, -iname, -user, -group, -uid, -gid, -nouser, -nogroup, -type, -size, -atime, -mtime, -ctime, -amin, -mmin, -cmin, -perm
組合:-a, -o, -not