一、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