一、locate命令。
該命令比find的命令尋找的速度快,這是因為她先建立一個包括系統內所有設定檔名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫。
使用範例如下:
---------------------------------------------------------------------------------------------
root@10.0.0.130:/root#locate libqsqlmysql.so
/opt/qtsdk-2010.04/qt/plugins/sqldrivers/libqsqlmysql.so
/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so
root@10.0.0.130:/root#
---------------------------------------------------------------------------------------------
二、find命令
這個命令比較豐富,在指定的目錄下按指定的條件搜尋檔案
1)命令條件的邏輯運算
預設是 and 條件運算 用 -a 表示
例子如下: 目前的目錄尋找非qrc_打頭的檔案
find ! -name "qrc_*"
尋找qrc_開頭或是moc_開頭的檔案
root@10.0.0.130:/root/WeatherTest#find -name "qrc_*" -o -name "moc_*"
./moc_weather.o
./qrc_Resources.cpp
./moc_weather4.cpp
./qrc_Resources.o
./moc_weather.cpp
./moc_weather4.o
尋找非weather開頭的目錄檔案 ,注意中間的與運算的 -a 省略了
oot@10.0.0.130:/root/WeatherTest#find ! -name "weather*" -xtype d
.
./images
以下是各種查詢條件的選項說明:
1. 以名稱和檔案屬性尋找。
- name ’字串’ 尋找檔案名稱匹配所給字串的所有檔案,字串內可用萬用字元*、?、[ ]。
- lname ’字串’ 尋找檔案名稱匹配所給字串的所有符號連結檔案,字串內可用萬用字元*、?、[ ]。
-gid n 尋找屬於ID號為n的使用者組的所有檔案。
-uid n 尋找屬於ID號為n的使用者的所有檔案。
-group ’字串’ 尋找屬於使用者組名為所給字串的所有的檔案。
-user ’字串’ 尋找屬於使用者名稱為所給字串的所有的檔案。
-empty 尋找大小為0的目錄或檔案。
-path ’字串’ 尋找路徑名匹配所給字串的所有檔案,字串內可用萬用字元*、?、[ ]。
-perm 許可權 尋找具有指定許可權的檔案和目錄,許可權的表示可以如711,644。
-size n[bckw] 尋找指定檔案大小的檔案,n後面的字元表示單位,預設為b,代表512位元組的塊。
-type x 尋找類型為x的檔案,x為下列字元之一:
b 塊裝置檔案
c 字元裝置檔案
d 目錄檔案
p 具名管道(FIFO)
f 普通檔案
l 符號連結檔案(symbolic links)
s socket檔案
-xtype x 與-type基本相同,但只尋找符號連結檔案。
2. 以時間為條件尋找
- amin n 尋找n分鐘以前被訪問過的所有檔案。
- atime n 尋找n天以前被訪問過的所有檔案。
- cmin n 尋找n分鐘以前檔案狀態被修改過的所有檔案。
- ctime n 尋找n天以前檔案狀態被修改過的所有檔案。
- mmin n 尋找n分鐘以前檔案內容被修改過的所有檔案。
- mtime n 尋找n天以前檔案內容被修改過的所有檔案
3、操作
尋找到指定條件後進行的操作,這裡指給出兩個選項 -exec 命令 {} \;注意命令後{}後緊跟一個空兩格還有一個\和一個分號。對指定條件的檔案執行命令操作。
--ok 命令 {} \;注意命令後{}後緊跟一個空兩格還有一個\和一個分號。對指定條件的檔案執行命令操作。操作前需要確認,輸入y或n。
例如:
尋找找目前的目錄的以moc開頭的檔案,並刪除。
root@10.0.0.130:/root/WeatherTest#find . -name "moc*" -exec rm {}
尋找目前的目錄的以o結尾的檔案,並刪除,刪除前有確認。
root@10.0.0.130:/root/WeatherTest#find . -name "*o" -ok rm {} \;
< rm ... ./qwr_v0_2.suo > ? n
< rm ... ./qrc_Resources.o > ? y
< rm ... ./WeatherTest.suo > ? n
< rm ... ./main.o > ? y
< rm ... ./weather.o > ? y
< rm ... ./weather4.o > ? y
< rm ... ./weathertest.pro > ? n