0
点赞
收藏
分享

微信扫一扫

5、【常用命令】文件搜索命令

南柯Taylor 2021-09-19 阅读 63
Linux A

1、find 命令

  • 谨慎使用find等搜索、查找类的命令,因为搜索也是需要消耗系统资源的,特别是在 Linux 作为服务器仍在对外提供服务的时候,请谨慎使用一些比较耗时、消耗资源的命令。

1.1、按文件或目录名称搜索

  • 选项-name,不忽略大小写;选项-iname,忽略大小写。

  • find /tmp -name test: 从目录/tmp下中搜索文件或目录名是test的。注意,这里所搜索出来文件或目录,要求名称是test且一字不差。

  • find /tmp -name *test*: 从目录/tmp下中搜索文件或目录名含有test的。*是通配符,表示任意字符(含零个);通配符?表示一个字符。

1.2、按文件或目录大小搜索

  • -size选项

  • -size选项后面的数字即大小,需要经过简单的计算,因为这个数字的单位是“Linux 中数据块”,一个数据块的大小是 512 字节(即 0.5 KB)。

1.3、按文件或目录的所有者或所属组搜索

  • -user选项:按所有者查找。

  • -group选项:按所属组查找。

1.4、按时间搜索

  • -5表示“多少时间之内”;+5表示“超过多长时间”。

1.5、按文件或目录类型搜索

1.6、find 命令其他事项

  • -ok-exec的区别:-ok某些进行操作之前进行询问。

2、locate 命令

  • locatefind不同:find是去硬盘找,locate只在/var/lib/slocate资料库中找。

  • locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中。这个数据库是定期更新的。这个数据库的更新由于不是实时的,所以,有些像新创建的文件或目录是无法通过locate命令搜索到的。

  • 可以使用updatedb命令来手动更新这个数据库。

  • locate命令无法搜索到/tmp目录下的文件或目录,因为在资料库中是不收录/tmp的。

3、which 命令

4、whereis 命令

5、grep 命令

  • grep命令只能针对文件使用而不能针对目录使用!

  • grep命令中的“指定字串”的部分可以使用正则表达式中的^$
    例如:grep ^# /tmp/test-1/1.txt(以“#”开头的行)、grep -i d$ /tmp/test-1/1.txt(以“d”或“D”结尾的行)

举报

相关推荐

0 条评论