當你拿到一個文件時,不知道它在哪兒,在什麼路徑,屬於什麼類型,這個時候,這些命令就能幫助到你了~~~~
1. file 查看文件類型:查看文件的基本數據,例如屬於ASCII 還是data或者是binary,有沒有使用帶動態函數庫等信息
用法:file 文件名
如:file ~/.bashrc
2 which(尋找 "執行文件")
用法:which [-a] command (command就是在終端輸入的那些東西,如cd ifconfig等)
-a :將所有PATH目錄(有些是在bash內置的,這時用 type 命令)中可以找到的命令全部都列出來,不僅列出查詢到的第一個
如: which -a ifconfig
3. whereis 文件名查詢,尋找特定文件(whereis和locate是linux在數據庫文件裏面查找的,而find直接遍歷硬盤查詢的)
用法:whereis [-bmsu] 文件或者目錄名
參數:-b :只尋找二進制格式文件
-m :只找在說明文件manual路徑下的文件
-s :只找source源文件下的
-u:在以上三種以外的特殊文件
如:whereis ifconfig
4. locate [-ir] keyword
參數:-i :忽略大小寫
-r :後面可接正則表達式的方式
如:locate -i ifconfig
有時你會查不到,很有可能是你的locate數據庫/var/lib/mlocate/沒有更新,只要你執行updatedb更新後再查詢
5. find [ PATH ] [ option ] [ action ]
參數:
(一). 與時間有關的有-atime,-ctime, -mtime,這三個時間都代表什麼可以去看看我以前寫的,現在以mtime爲例子。
-mtime n :這個n是一個數字,指第 n 天當天被更改過的文件
-mtime +n :列出 n 天之前的(不含 n 天本身)被更改過的文件, 如:find /etc -mtime +4
-mtime -n :在 n 天之內(含 n 天)被修改過的內容
-newer 文件file :列出比已存在文件 file 還要新的文件名,如:find /etc -newer /etc/passwd 列出新舊兩個文件之間的文件
(二)與用戶或用戶組有關的參數
-uid n :這個n是數字,是用戶的賬號ID,即UID,記錄在/etc/passwd
-gid n :這個 n 是用戶組ID,即UID,記錄在/etc/group裏
-user name:這個name是用戶名稱,如root(用戶)
-group name:這個name是用戶組名稱,如root(用戶組)
-nouser name:尋找文件所有者不存在/etc/passwd中的文件
-nogroup name :/尋找文件所有用戶組不存於/etc/group中的文件,當自行安裝軟件,使用-nouser和-nogroup來查找吧
如:find /home -user username
(三)與文件權限及名稱有關的參數
-name filename:直接查找文件名爲filename的文件
-size [ + - ] SIZE:查找比 SIZE 還大(+)或小(-)的文件,c:代表byte,k代表1024bytes,如find -size +50k
-type TYPE:查找文件類型爲TYPE的文件,文件都有什麼類型,之前的博客我也寫過
(四)其他可進行的操作
-exec command:-exec後面接其他的命令來擴展輸出的結果,如:find / -type f ls -al {} \ ;
-print :打印查詢結果,默認