【Linux】指令與文件的搜尋
指令與文件的搜尋
1 . 指令文件名的搜尋
2. 文件文件名的搜尋
1 . 指令文件名的搜尋
1.1 which(尋找可執行文件)
命令:which 【-a】 command
-a : 將所有有PATH目錄中可以找到的指令均列出
**范例一:**搜尋ifconfig這個指令的完整文件名
范例二找出which的文件名
竟然會有兩個 which ,其中一個是 alias 這玩意兒呢!那是啥?
那就是所謂的“命令別名”,意思是輸入 which 會等于后面接的那串指令啦!
范例三:找出history這個指令的完整文件名
在上圖我們發現history這個指令招不到,我們的root命令是可以執行history這個命令的
注意點:
which這個指令是找的PATH這個環境變量所規范的路徑,但是有的指令是是bash內置的指令,所有which搜索不到,那么要搜索bash的指令就需要使用type
2. 文件文件名的搜尋
在linux下有三個指令來搜索文件名
find
whereis
locate
2.1 whereis(只能在特定目錄尋找文件名)
whereis 主要是針對 /bin /sbin 下面的可執行文件, 以及 /usr/share/man 下面的 man page 文
件
參數
-l :可以列出 whereis 會去查詢的幾個主要目錄而已
-b :只找 binary 格式的文件
-m :只找在說明文檔 manual 路徑下的文件
-s :只找 source 來源文件
-u :搜尋不在上述三個項目當中的其他特殊文件
whereis這個命令可以搜索到的文件可以使用whereis -l來查看
這個圖沒有截取完,可以自己去試著查看
2.2 localte
-i :忽略大小寫的差異;
-c :不輸出文件名,僅計算找到的文件數量
-l :僅輸出幾行的意思,例如輸出五行則是 -l 5
-S :輸出 locate 所使用的數據庫文件的相關信息,包括該數據庫紀錄的文件/目錄數量等
-r :后面可接正則表達式的顯示方式
范例一:找出passwd的文件,只列出5個
范例二尋找我們自己創建的文件
確實很方便的
2.3 locate的尋找速度
由于locate指令是直接在已創建的數據庫/var/lib/mlocate里邊的數據,所以是很快的。
關于這個數據庫是每天都會更新一次的
2.4 關于locate數據庫更新
這個數據庫是每天都會更新一次的,但是有個問題就是假如你新創建了一個文件,但是沒有達到這個更新時間,那么就查不到的,下面我們來試驗一下
上圖會發現是搜索不到的。
那么我們就到了我們的updatedb這個指令上場了,這個時候就可以查到了
2.5 find指令時間相關的查詢
find指令的用法就非常多了下來我們一點一點的解析
與時間相關的參數
-mtime n :n 為數字,意義為在 n 天之前的“一天之內”被更動過內容的文件;
-mtime +n :列出在 n 天之前(不含 n 天本身)被更動過內容的文件文件名;
-mtime -n :列出在 n 天之內(含 n 天本身)被更動過內容的文件文件名。
-newer file :file 為一個存在的文件,列出比 file 還要新的文件文件名
范例一:找出系統24小時內有過改動的文件
find / -mtime 0
+4代表大于等于5天前的文件名:ex> find /var -mtime +4
-4代表小于等于4天內的文件文件名:ex> find /var -mtime -4
4則是代表4-5那一天的文件文件名:ex> find /var -mtime 4
2.6 find指令使用者或者群組文件的查詢
-uid n :n 為數字,這個數字是使用者的帳號 ID,亦即 UID ,這個 UID 是記錄在
/etc/passwd 里面與帳號名稱對應的數字
-gid n :n 為數字,這個數字是群組名稱的 ID,亦即 GID,這個 GID 記錄在
/etc/group,
-user name :name 為使用者帳號名稱喔!例如 dmtsai
-group name:name 為群組名稱喔,例如 users ;
-nouser :尋找文件的擁有者不存在 /etc/passwd 的人!
-nogroup :尋找文件的擁有群組不存在于 /etc/group 的文件!
當你自行安裝軟件時,很可能該軟件的屬性當中并沒有文件擁有者,
這是可能的!在這個時候,就可以使用 -nouser 與 -nogroup 搜尋。
范例一:搜尋/learn下面屬于kaka用戶的文件
范例二:搜索屬于kaka群組的文件
范例三:搜尋不屬于任何人的文件
find / -nouser
2.7 搜尋文件名稱跟權限的文件
-name filename:搜尋文件名稱為 filename 的文件;
-size [±]SIZE:搜尋比 SIZE 還要大(+)或小(-)的文件。這個 SIZE 的規格有:
c: 代表 Byte, k: 代表 1024Bytes。所以,要找比 50KB
還要大的文件,就是“ -size +50k ”
-type TYPE :搜尋文件的類型為 TYPE 的,類型主要有:一般正規文件 (f), 設備文件 (b, c),
目錄 (d), 鏈接文件 (l), socket (s), 及 FIFO (p) 等屬性。
-perm mode :搜尋文件權限“剛好等于” mode 的文件,這個 mode 為類似 chmod
的屬性值,舉例來說, -rwsr-xr-x 的屬性為 4755 !
-perm -mode :搜尋文件權限“必須要全部囊括 mode 的權限”的文件,舉例來說,
我們要搜尋 -rwxr–r-- ,亦即 0744 的文件,使用 -perm -0744,
當一個文件的權限為 -rwsr-xr-x ,亦即 4755 時,也會被列出來,
因為 -rwsr-xr-x 的屬性已經囊括了 -rwxr–r-- 的屬性了。
-perm /mode :搜尋文件權限“包含任一 mode 的權限”的文件,舉例來說,我們搜尋
-rwxr-xr-x ,亦即 -perm /755 時,但一個文件屬性為 -rw-------
也會被列出來,因為他有 -rw… 的屬性存在!
范例一:找出文件名為kaka.php的文件
范例二:找出文件名包含kaka的文件
范例三:找出learn下的目錄
關于perm特殊權限的搜索就不寫了,沒有多大的意義
linux 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。