【Linux】Linux下常用搜索命令及其常用选项小结

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可替换为aminmmin,各个参数含义如下:
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 #排除$所在的行,^表示以$开头,即不显示以$开头的行

以上。

参考资料:

1.https://www.bilibili.com/video/BV1mW411i7Qf?p=18

2.https://www.bilibili.com/video/BV1mW411i7Qf?p=19

相关推荐
岚天start1 分钟前
Linux内核coredump分析方案
linux·运维·服务器·gdb·coredump·堆栈·内存快照
屁股割了还要学22 分钟前
【Linux入门】常用工具:yum、vim
linux·运维·服务器·c语言·c++·学习·考研
云计算练习生23 分钟前
linux shell编程实战 03 数组:批量处理数据
linux·运维·服务器·数组·shell编程
王道长服务器 | 亚马逊云1 小时前
AWS Elemental MediaConvert:视频转码不再难
linux·服务器·网络·云计算·音视频·aws
Jm_洋洋1 小时前
【Linux系统编程】程序替换:execve(execl、execlp、execle、execv、execvp、execvpe)
linux·运维·c语言·开发语言·程序人生
qq_479875431 小时前
TCP网络编程本质
服务器·网络·tcp/ip
HIT_Weston1 小时前
14、【Ubuntu】【VSCode】VSCode 断联问题分析:hostname(二)
linux·vscode·ubuntu
冲上云霄的Jayden1 小时前
bash执行脚本 CondaError: Run ‘conda init‘ before ‘conda activate‘
linux·ubuntu·conda·bash·init·activate
驱动探索者2 小时前
影石Insta360发展史:从深圳公寓到全球影像创新标杆
linux
Wang's Blog2 小时前
Linux小课堂: SSH 免密登录原理与实现之基于公钥认证的安全连接机制
linux·安全·ssh