+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
find
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
find 命令是一個非常有效的工具,它可以遍歷當前目錄甚至於整個文件系統來查找某些文件或目錄.
主要選項:
-name 按照文件名查找文件
-perm 按照文件權限來查找文件
-prune 不在當前指定的目錄中查找
-user 按照文件屬主來查找文件
-group 按照文件所屬的組來查找文件
-mtime -n +n 按照文件的更改時間來查找文件,-n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前.
-nogroup 查找無有效所屬組的文件,即該文件所屬的組不存在
-nouser 查找無有效屬主的文件
-newer file1 ! file2 查找更改時間比文件file1新但比文件file2舊的文件
-type 查找某一類型的文件
文件類型:
b 塊設備文件
d 目錄
c 字符設備文件
p 管道文件
l 符號鏈接文件
f 普通文件]
-size n[c] 查找文件長度爲n塊的文件,帶有c時表示文件長度以字節計
-depth 在查找文件時,首先查找當前目錄中的文件,然後再在其子目錄中查找
-mount 在查找文件時不跨越文件系統mount點
-follow 如果find命令遇到符號鏈接文件,就跟蹤到鏈接所指向的文件
-cpio 對匹配的文件使用cpio命令,就將這些文件備份到磁盤設備中
(其餘選項,請man find,進一步查看)
對linux find命令選項的一些例子:
$ find /etc -type d #在/etc 目錄下查找所有的目錄
$ find /etc -user yaoyuan #在/etc目錄下查找文件屬主爲yaoyuan的文件
$ find . -size +1000000c #在當前目錄下查找文件長度大於1 M字節的文件
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
whereis
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
一般用於定位二進制文件,源文件(原始代碼文件),和幫助說明文件。
選項:
-b 只查找二進制文件
-B 只在設置的目錄下查找二進制文件
-f 不顯示文件名前的路徑名稱
-m 只查找說明文件
-M 只在設置的目錄下查找說明文件
-s 只查找原始代碼文件
-S 只在設置的目錄下查找原始代碼文件
-u 查找不包含指定類型的文件
舉例:查找/usr/bin中的所有文件,其源文件在/usr/src中,且/usr/man/man1中沒有支持文檔。
$cd /usr/bin
$whereis -u -M /usr/man/man1 -S /usr/src -f *
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
locate
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
locate --通過名字查找文件
locate讀取一個或更多數據庫(由updatedb來更新),當匹配至少一個PATTERN (範本樣式)時,輸出文件的名字到標準輸出,一行一個。
PATTERN (範本樣式) 可以包含通配符,如果範本樣式不包含通配符,locate就把範本樣式當做 *PATTERN* 來處理。
默認情況下,locate命令並不檢查要查找的文件是否在數據庫中,locate命令不會報告在最近更新相關數據庫後創建的文件(一般,updatedb每天會跑一次,可以由修改crontab來更新設定值etc/crontab)。
選項:
-u 建立數據庫,由根目錄開始
-U 建立數據庫,可以指定開始的位置
-e 將排除在尋找的範圍之外
-f 將特定的檔案系統排除在外
-q 安靜模式,不會顯示任何錯誤訊息
-n 至多顯示n個輸出
-r 使用正規運算式 做尋找的條件
-o 指定數據庫存的名稱
-d 指定數據庫的路徑
-h 顯示輔助訊息
-v 顯示更多的訊息
-V 顯示程序的版本訊息