文件類型
文件類型通過file 來查看
locate
依據系統上預建的文件數據庫查詢文件
-數據庫必須被管理員更新
-搜索出的是文件的絕對路徑,不僅僅是文件名
可能只搜索用戶具備讀取和執行權限的目錄
通常需要執行updatedb命令來更新數據庫
會在/var/lib/mlocate/mlocate.db數據庫更新
locate foo
-搜索名稱或路徑中帶有“foo”的文件
locate –r ‘\.foo$’
-r代表是後面接的是正則表達式
-使用正則表達式來搜索以“.foo”結尾的文件
有用的選項
-i執行不區分大小寫的搜索
-n X 只列舉前X個匹配項目
Updatedb.conf中的注意事項
注意:以下目錄updatedb是不會去掃描的
例子如下:演示了上面的注意事項
-i忽略大小寫搜索
-n x 表示只列出前x項
注意:Locate使用上的限制,就是你必須要更新數據庫,或者系統自動更新數據庫。自己自動更新數據庫updatedb完成,上面已提到過updatedb不會更新全部的目錄
find
find [路徑][選項][動作]
到文件系統裡搜索目錄樹
-比locate命令慢,但比它更准確
-如果沒有給定起始目錄,就會使用CWD(當前所在目錄)
-如果沒有給定條件,就會匹配所有文件
可以在找到的文件上進一步執行其他操作
可能只搜索用戶具備讀取和執行權限的目錄
Find 命令常用到得選項
1、時間參數
-atimen 為數字,含有在n天之前的一天內訪問過得文件
-ctimen 為數字,包含在n天之前的一天內狀態改變過的文件
-mtimen 為數字,包含在n天之前的一天內修改過得文件
-newerfile file為存在的一個文件,意思是比file文件還要新的列出來
2、與用戶或者用戶組名稱相關的參數
-uidn n為數字,這個是用戶的賬戶id,即uid
-gidn n為數字,這個是用戶組名稱的id,即gid
-username name為用戶賬號名稱
-groupname name為用戶組名稱
-nouser 查找文件的擁有者不在/etc/passwd的文件
-nogroup查找文件的擁有組不在/etc/group文件中的
3、與文件權限以及名稱的相關選項
-name filename 搜索文件名為filename 的文件名
-size [+-]SIZE 搜索比size還要大的+或者還要小得- 文件,。這個size的 規格為c:byte,k等
-type TYPE 搜索文件的類型Type,類型主要有:一般文件f,設備文件(b,c),目錄d,連接文件l,套接字s,以及fifo(p)等屬性
-perm mode 搜索文件屬性,必須包含模式,這個模式類似於chmod例如0755 4755
-perm –mode 文件必須包含全部模式例如4755
-perm +mode 搜索文件屬性,包含任意mode的屬性的文件,比如-rwxr-xr-x即-perm +755,但這一文件屬性為-rw-----也會被列出來,因為他包含-rw-----屬性
4、附加操作
-exec command :command為其他命令,-exec後邊可以在接額外命令來處理搜索的結果
-print將結果打印出來,這個動作是默認的
基本的find命令使用實例
find –name snow.png
-搜索名為snow.png的文件
find–inamesnow.png
-不分大小寫地搜索名為snow.png、Snow.png、SNOW.PNG、等等的文件
find –user joe –group joe -type f
-搜索被用戶joe以及組群joe所擁有的文件
-find –user joe -o –group j
find 命令和邏輯運算符
搜索條件默認使用 and 運算符連接,-a
可以使用 -o 來進行 or 運算,或 -not 來進行否定運算
可以使用括號來決定邏輯運算的順序,但是必須使用bash的轉義符
find -user joe -not -group joe
find -user joe -o -user jane
find -not \( -user joe -o -user jane \)
find 命令和權限
可以根據用戶名或 ID 來匹配所有者
find / -user joe -o -uid 500
可以匹配數字式(又稱為八進制)或符號式權限模式
-find -perm 755 會匹配權限模式恰好是755的文件
-只要當用戶有寫權限時,find -perm +222才會匹配
-只有當每個人都有寫權限時,find -perm -222才會匹配
-只要其它人(other)有寫權限時,find -perm -002才會匹配
find 命令和數字式條件
許多find條件都接受數值作為參數
find -size 1024k
-大小正好是1兆的文件
find -size +1024k
-大小超過1兆的文件
find -size -1024k
-大小小於1兆的文件
-M :兆;G
find 和存取時間
find 命令可以根據inode時間戳來進行匹配
-atime :文件最後一次被讀取
-mtime:文件數據最後一次被修改
-ctime:文件數據或元數據最後一次被改變
給定值代表天數
-find –ctime -10
-文件修改日期小於10天
-find –ctime +10
-大於10天
使用 find 來執行命令
在找到的文件上可以執行命令
-命令前面必須加一個 -exec 或 -ok 選項
-ok 在對每個文件執行命令前提示你
-命令必須以 空格\; 結尾(“ \;”)
-{} 可以用作文件名的位置標志符
-find -size +102400k –ok gzip {} \;
find 命令的執行實例
 
find –name “*.conf” –exec cp {} {}.orig \;
-備份配置文件,添加.orig 這個擴展名
find /tmp –ctime +3 –user joe –ok rm {} \;
-提示刪除存在時間超過3天以上的joe的臨時文件
find ~ -perm -002 –exec chmod o-w {} \;
-在你的主目錄中尋找可被其它用戶寫入的文件
which
Which尋找執行文件,這個命令是根據PATH的設置來進行搜索
-a將所有的可用命令都列出來,而不僅僅列出第一個命令,
使用-a選項:列出所有的相關命令
查看which 的版本
Whereis尋找特定的文件
Whereis [-bmsu] 文件或者目錄名
-b 只找二進制文件
-m 只找幫組文件
-s 只找源文件
-u 查找不包含指定類型的文件
例1:不帶參數會列出任何相關的passwd文件
列出二進制文件
列出passwd的幫助文件
Gnome搜索工具
位置搜索文件…
圖形化搜索工具,可搜索
-名稱
-內容
-用戶/組群
-大小
-修改時間
本文出自 “無痕” 博客,請務必保留此出處http://hucwuhen.blog.51cto.com/6253667/1265655