腳本文件名的查詢
which : 尋找執行文件
可以將所有path目錄中可以找到的命令列出,要也就是根據path環境變量所規劃的路徑去查詢文件名
比如 which ifconfig
用roo賬號和一般賬號是不同的
前者可查出正確的執行文件名
/sbin/ifconfig
用一般用戶是找不到的
which cd沒法查找
因為cd是bash內置的命令,但which默認是查找path內所規范的目錄,所以當然找不到
文件名的查找
一般命令有三種,whereis locate find 一般是用whereis 和locate 因為這兩者是利用數據庫啊查找數據的,而find是查找硬盤,數據較慢。
whereis 尋找特定文件
whereis ifconfig 發現root和一般用戶都可以找到這個文件
因此,當找不到某些命令的時候,先用文件查找試試看
參數:-b只找二進制文件
-s 只找source源文件
locate
參數 -i 忽略大小寫的差異
這個locate更簡單,直接在後面輸出文件的部分名稱
但是這個命令有限制,因為是查找數據庫的,這個數據庫是在/var/lib/mlocate/裡面的數據,二數據庫創建是默認每天執行一次,因為當新建文件後查找該文件,locate會找不到
因此必須要更新數據庫。
手動更新數據庫:直接輸入updatedb,就行。updatedb會讀取/etc/updatedb。conf這個配置文件的設置,再去硬盤查找文件名的操作,最後更新整個數據庫文件,因為updatedb會去查找硬盤,因此會耗時數分鐘。
find
與時間有關的參數:-atime -mtime
-mtime n:n為數字,意義在n天之前的一天之內更改過得文件
-mtime +n:列出在n天之前的更改過的文件名
-mtime -n: 列出n天之內更改過的文件名
find / -mtime 0
0代表目前的時間,所以從現在開始到24小時前
參數2:-user anme:name為賬戶名
比如 find /home -user c 找出任何一個用戶在系統中的所有文件