語法:find [搜索范圍] [匹配條件]
功能:文件搜索
例1:$find /etc -name init
在目錄/etc中查找文件init,為精準搜索(-iname不區分文件名大小寫)
$find /etc -name *init*(利用通配符*來實現模糊搜索,文件名包含init)
$find /etc -name *init(利用通配符*來實現模糊搜索,文件名尾部為init)
$find /etc -name init???(利用通配符*來實現模糊搜索,文件名頭部為init,尾部為3個字符)
例2:$find / -size +204800
在根目錄下查找大于100MB的文件(+n大于;-n小于;n等于)
ps:linux中單位為數據塊,一個數據塊為512字節,也就是0.5KB
100MB=102400KB=204800個數據塊
例3:$find /home -user shenchao
在根目錄下查找所有者為沈超的文件(-group根據所屬組找)
例3:$find /etc -cmin -5
在/etc下查找5分鐘內被修改過屬性的文件及目錄
選項:-cmin 文件屬性change
? ? ? ? ? ?-mmin文件內容modify
? ? ? ? ? ?-amin訪問時間access
例4:$find /etc -size +163840 -a -size -204800
在/etc下查找大于80MB小于100MB的文件
ps:-a ?兩個條件同時滿足;-o兩個條件滿足任意一個(相當于or)
例5:$find /etc -name init* -a -type f
查找在./etc目錄下名字頭部為init開頭的文件
-type 的選項有 ?f ?代表文件;d ?代表目錄; ?l代表軟鏈接文件
例6:$find /etc -name inittab -exec ls -l {} \;
在/etc目錄下查找名字為inittab的文件或目錄并且顯示其詳細信息
$find /etc -name inittab -a -type f -exec ls -l {} \;
在/etc目錄下查找名字為inittab的文件并且顯示其詳細信息
-exec與-ok類似,不同點在于-ok命令會對每次要執行的操作進行再次確認。
例7:針對奇怪的文件名或要刪除硬鏈接
$find . -inum 31531 -exec rm ?{} \;
在當前目錄下查找inode號為31531及刪除操作
語法:locate 文件名
功能:在文件資料庫中查找文件,locate命令其實是“find -name”的另一種寫法,但是要比后者快得多,資料庫每天更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用$updatedb命令,手動更新數據庫。但在/tmp臨時目錄的文件不在資料庫之內。
例:$locate inittab
$ locate /m
搜索根目錄下,所有以m開頭的文件
? ? ?加-i參數,會忽略文件名大小寫
例:$ locate -i /m
搜索用戶主目錄下,所有以m開頭的文件,并且忽略大小寫。
語法:which ?命令
功能:搜索命令所在目錄及別名信息
例:$ which grep
語法:whereis ?命令
功能:查看命令所在目錄及幫助文檔路徑,與which類似
例:$ whereis grep
語法:grep -iv [指定字符串] [文件名]
? ? ? ? ? ? ? ? ? ?-i 不區分大小寫
? ? ? ? ? ? ? ? ? -n 加行號
? ? ? ? ? ? ? ? ? -v 排除包含指定字符串的行
功能:在文件中搜索字符串匹配的行并輸出
例:$grep -v ^# /etc/inittab
在文件中去除注釋行
ps:#前面的^表示以#開頭的行去掉