文件查找:
locate查找:
locate: 依賴于事先構建好的索引庫,操作系統剛完成沒有 系統自動實現(周期性任務); 手動更新數據庫(updatedb);相當占用系統資源 工作特性: 查找速度快 模糊查找 非實時查找 可能只搜索用戶具備讀取和執行權限的目錄 命令使用格式: locate [option] ...pattern.... -b:只匹配路徑中的基名,不匹配路徑中的 -c:統計符合條件的數量 -r:基于基本正則表達式 -i:忽略大小寫
簡單例子
find查找:
實時查找工具,通過遍歷指定起始路徑下文件系統層=層級結構完成文件查找 工作特性 查找速度略慢 精確查找 實時查找 find [option] [查找起始路徑] [查找條件][處理動作] 查找路徑:指定具體目標路徑;默認為當前目錄
查找條件:指定的查找標準,可以文件名、大小、類型、權限等標準進行;默認為找出指定路徑下的所有文件 由選項和測試組成 測試的實現:根據文件名查找 -name "pattern"|-iname(不區分大小寫) pattern:指的是globing風格表達式非正則表達式 -regex :基于正則表達式模式查找文件,匹配范圍是整個路徑,并非基名 根據文件的從屬關系找到 -user username:查找屬主指定用戶的所有文件 -group group:查找屬組為指定GID的所有文件 -uid UID:查找屬主指定的UID的所有文件 -gid gid:查找指定屬組的GID的所有文件 -nouser:沒有屬主的文件(某個文件的屬主被刪除,此文件所屬和主以UID和Gid顯示) -nogrpup
根據文件類型查找 -type TYPE: f: 普通文件 d: 目錄文件 l: 符號鏈接文件 s:套接字文件 b: 塊設備文件 c: 字符設備文件 p: 管道文件
組合條件: 與:-a默認組合條件 或:-o 非:-not或添加! 摩根定律:!(A -a B)=!A -o !B !(A -o B)=!A -a !B
根據文件大小查找 -size +|- 大小 單位 常用單位:K,M,G
根據時間戳查找: 以天為單位 -atime #:[#,#-1) +#: [#+1 ,∞] - #: [0,#) - mtime - ctime 以分鐘為單位 -amin -mnin -cmint
根據權限查找 -perm mode:精確比配 /mode:任何一類(u,g,o)符合條件即可 -mode:每一類都符合條件,如果某一位上設置的為0表示不關注 舉例: find - perm 755 會匹配權限模式恰好是755的文件 只要當任意人有寫權限時, find - perm +222|/222 就會匹配 只有當每個人都有寫權限時, find - perm - 222才會匹配 只有當其它人( other)有寫權限時, find - perm - 002才會匹配
處理動作
-print -ls -delete :刪除文件 -fls 路徑:把查找到的文件的詳細信息保存到指定文件中 -ok 命令 {} \;對找到的每個文件執行命令,執行前會與用戶進行交互,詢問是否操作 -exec 命令 {} \;對查找到的每個文件執行命令,但是不提醒 {}引用前面找到的文件 注意:find傳遞查找的文件路徑到后面的命令時,先查找所有符合條件的命令,一次傳給后面的命令但是有些命令不能執行過長的參數,此時命令執行會失??;另一個方式會解決 find |xargs 命令
find 命令練習
1、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件 2、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件 3、查找/etc目錄下大于1M且類型為普通文件的所有文件 4、查找/etc目錄下所有用戶都沒有寫權限的文件 5、查找/etc目錄下至少有一類用戶沒有執行權限的文件 6、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件 7、查找/etc/下所有的.conf文件,但是不搜索/etc/sane.d文件
一、
二、
三、
四、
五、
六、
7、
[root@centos7 ~]# find /etc -path /etc/sane.d -a -prune -o -name "*.conf"
原創文章,作者:wangnannan,如若轉載,請注明出處:http://www.www58058.com/30626
find命令是筆試中常見的考點,同時find的處理動作也是很重要的,希望課后能多加練習,熟練掌握。