0x00 前言
版本信息:Ubuntu 18.04.6 LTS
最后更新日期:2023.8.18
0x01 Linux下常用搜索命令及其常用选项小结
1.find
(1)find path -name filename
:在指定目录path
查找名为filename
文件,文件名可用*
匹配任意字符,?
匹配单个字符。
可追加参数:
-a
:满足两个条件;
-o
:满足一个条件;
-type
:根据文件类型查找:f文件 d目录 l软连接文件;
-inum
:根据i节点查找。
例1:
bash
find /etc -name services
find /etc -name init*
find /etc -name *int*
find /etc -name init??? #查找/etc目录下init开头并后接3个字符的文件
find /etc -name init* -a -type f #查找/etc目录下init开头并文件类型为file的文件
(2)find path -iname filename
:在指定目录path
查找名为filename
文件(不区分filename
大小写 ,和find path -name filename
用法一样)。
(3)find path -size +数据块大小
:在指定目录path
下查找大于某个数据块(文件字节*2)大小的文件。
(4)find path -size +数据块大小1 -a -size -数据块大小2
:在指定目录path
下查找大于某个数据块大小1
(文件字节 * 2)小于数据块大小2
(文件字节 * 2)的文件,注意指令中的+表示大于、-表示小于。
数据块与字节转换:
1个数据块 == 512字节 == 0.5k
100MB == 102400KB == 204800数据块
例2:
bash
find / -size +204800 #查找根目录下大于100MB文件
find / -size +163840 -a -size -204800 #查找根目录下大于80MB小于100MB文件
(5)find path -user name
:在指定目录path
下找到所有者为name
的文件。
(6)find path -cmin -time
:在指定目录path
下查找指定时间time
(数字,单位分钟)内属性被修改过的文件和目录。
cmin
可替换为amin
和mmin
,各个参数含义如下:
amin
访问时间有改变(access);
cmin
文件属性有改变(change);
mmin
文件内容有改变(modify)。
例3:
bash
find /etc -cmin -30 #查找etc目录下30min内属性被修改的文件和目录
(7)find path -name filename -exec ls -l {} \;
:在目录path
下查名为filename
文件并显示其详细信息。
(8)find path -inum inode -exec rm {} \;
:在目录path
下删除节点号为inode
的文件(文件及其所有硬链接或名字怪异的文件可以使用该方法删除)。可以先使用ls -i
查看要删除文件的inode
节点
2.locate
locate filename
:在文件资料库查找名为fielname
文件(新建的文件因为在资料库没即使更新可能会找不到,解决方法先输入updatedb
资料库再使用该指令查找),注意,/tmp
文件夹下的文件不会收录到文件资料库。
3.which
which command
:搜索command
命令所在目录及其别名所在目录。
4.whereis
wehereis command
:搜索command
命令所在目录。
5.grep
grep string filename
:在filename
文件中搜索与字符串string
匹配的行并输出。
可加参数如下:
-i
:不区分大小写
-v
:反向查找
例4:
bash
grep time /etc/services #查找该/etc/services文件中time关键字
grep -i time /etc/services #查找该/etc/services文件中time关键字,不区分time大小写
grep -v ^$ /etc/services #排除$所在的行,^表示以$开头,即不显示以$开头的行
以上。
参考资料: