歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 如何在Linux下搜索和處理文檔

如何在Linux下搜索和處理文檔

日期:2017/3/3 16:03:33   编辑:關於Linux

文件類型

文件類型通過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

Copyright © Linux教程網 All Rights Reserved