linux上查找文件存放地點和文件中查找字符串方法

一、查找文件存放地點

1、locate

語法:locate <filename>

locate命令實際是"find -name"的另一種寫法,但是查找方式跟find不同,它比find快得多。因爲它不搜索具體目錄,而是在一個數據庫(/var/lib/locatedb)中搜索指定的文件。次數據庫含有本地文件的所有信息,此數據庫是linux系統自動創建的,數據庫由updatedb程序來更新,updatedb是由cron daemon週期性建立的,默認情況下爲每天更新一次,所以用locate命令你搜索不到最新更新的文件,除非你在用locate命令查找文件之前手動的用updatedb命令更新數據庫。

注意:每次有新文件更新和刪除之後,在updatedb之前數據庫中保存的文件信息不會改變,即新添加一個文件之後,updatedb之前用locate搜索不到指定的文件。同樣再刪除一個文件信息已經在數據庫中的文件時,updatedb之前用locate照樣能搜索到該文件的信息,,儘管此時該文件已經不存在了。

2、find 

語法:find <起始目錄> <搜索條件> <動作> 

默認起始目錄是.(當前目錄)。

默認動作是輸出文件名。

常用的搜索條件參數選項:

-name:按文件名來查找文件

-user:按照文件的屬主來查找文件

-group:按照文件所屬的組來查找文件

-perm:按照文件權限來查找文件

-prune:不在當前指定目錄中查找

-mtime -n +n:按照文件修改時間來查找文件,-n表示文件修改時間距現在n天以內,+n表示文件修改時間據現在n天以前

-type:查找某一類型的文件(b:塊設備文件;d:目錄文件;c:字符設備文件;p:管道文件;l:鏈接文件;f:普通文件)

-nogroup:查找無有效所屬組的文件,即文件所屬的組在/etc/group中不存在

-nouser;查找無有效所屬主的文件,即文件的所屬主在/etc/passwd中不存在

例如:find /home -name nginx.conf

注意:find命令不加任何參數時,表示搜索路徑爲當前目錄及其子目錄,默認的動作爲-print,即不過濾任何結果,也就是說輸出所有的文件。

3、whereis命令

whereis命令只能用於搜索二進制文件(-b)、源代碼文件(-s)、說明文件(-m)。如果省略參數則返回所有的信息。

4、which命令

which命令是在PATH變量指定的路徑中搜索指定的系統命令的位置。用echo $PATH可顯示當前PATH變量的值。

5、type命令

type命令主要用於區分一個命令到底是shell自帶的還是外部獨立的二進制文件提供的。如果是shell自帶的則會提示此命令爲shell buildin,否則會列出命令的位置。例如:cd爲shell自帶的命令,當用which查找時,which會按照PATH變量設置的路徑進行搜索,結果顯示no cd in...;用type cd則顯示cd爲shell buildin命令。ssh不是shell自帶命令,用type時會顯示ssh的路徑。

 

二、查看文件中的字符串

1、vim或vi命令下查找字符串

1、命令模式下輸入"/字符串",點擊enter

2、需要往上查找點擊“N”,繼續反方向搜索

3、需要往下查找點擊“n”,繼續朝同一方向搜索

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章