which,whereis, locate, find
which
在PATH环境变量中的路径中查找目标文件,所以用来查找都是可执行文件,Linux下的各种命令本质上就是一个可执行的文件,所以我们安装新的软件之后通常都会有相应的命令将其打开,就是因为安装的过程将该软件的启动文件放在PATH中,Shell会在PATH中搜索该命令的文件并执行。
whereis 和 locate
Linux会把系统的所有文件的信息都记录在一个数据库中,使用whereis和locate会在这个数据库中查找,所以查找速度很快,但考虑到数据库更新的及时性问题,有时也会找不到一定存在的文件或者找到已经删除的文件
whereis [-bBmMsSfu] [待查找的文件或目录]
-b #只查找二进制文件
-B[目录] #只在指定目录下查找二进制文件
-m # 只查找man说明文件
-M[目录] # 只在目录中查找说明文件
-s # 只查找源代码文件
-S[目录] # 只在目录查找源代码文件
-f # 不显示文件名前的路径
-u # 查找不包含指定类型的文件
find
用来在指定目录下查找文件,缺省参数时会查找该目录及其子目录的所有内容,可以使用多个选项-参数来提高搜索精度,可以通过-regex来支持正则表达式,该命令是在硬盘里面遍历寻找,功能很强但是效率很低,通常在whereis和locate找不到时用
$find [待查找目录] [搜索选项1] [参数1] [搜索选项2] [参数2]
按路径字符串搜索
-path [路径字符串] # 按照路径字符串查找文件或目录,大小写敏感
-ipath [路径字符串] # 按照路径字符串查找文件或目录,大小写不敏感
-prune [文件或目录路径] # 忽略指定路径的文件
按属主属组搜索
-uid [用户识别码] # 查找符合指定的用户识别码的文件或目录
-user [用户名] # 查找属于用户名的文件或目录
-gid [群组识别码] # 查找属于群组识别码的文件或目录
-group [群组名] # 查找属于群组名的文件或目录
-nogroup # 找出不属于本机群组识别码的文件或目录
-nouser # 找出不属于本机用户识别码的文件或目录
按正则表示式搜索
-regex [正则表达式字符串] # 查找符合正则表达式的文件或目录,大小写敏感
-iregex [正则表达式字符串] # 查找符合正则表达式的文件或目录,大小写不敏感
按文件名搜索
-name [文件或目录名字符串] # 按照文件或目录名查找文件或目录,大小写敏感
-iname [文件或目录名字符串] # 按照文件或目录名查找文件或目录,大小写不敏感
按文件权限搜索
-perm [权限] # 按照权限查找文件或目录
按文件类型搜索
-type [文件类型] # 按照文件类型查找文件
f 普通文件
l 符号链接
d 目录文件
c 字符设备
b 块设备
s 套接字
p FIFO管道文件
按文件大小搜索
-size [文件大小] # 查找符合指定文件大小的文件,
+ 大于
- 小于
不写 等于
b 块(512byte)
c Byte
w Word(2Byte)
k 千字节
M 兆字节
G G字节
按照inode搜索
-inum [inode编号] # 按照inode编号查找文件或目录
搜索目录层次限制
-depth # 从待查找目录的最深层的子目录开始查找
-maxdepth [目录层级] # 设置最大目录层级
-mindepth [目录层级] # 设置最小目录层级
按时间搜索
-amin [分钟] # 查找指定分钟访问过的文件或目录,-3,表示3分钟内,3表示三分钟前的那个时间点,+3表示超过3分钟。
-atime [天] # 查找指定天访问过的文件或目录。
-mmin [分钟] # 查找指定分钟修改过的文件或目录。
-mtime [天] # 查找指定天修改过的文件或目录。
-cmin [分钟] # 查找指定分钟变化过的文件或目录。
-ctime [天] # 查找指定天变化过的文件或目录。
-cnewer [参考文件或目录] # 查找比参考文件或目录更新的文件或目录
- Remark:
Unix/Linux的每个文件都有三个时间戳
访问时间:最近一个访问时间 > -atime, -amin
修改时间:文件最后一次修改时间> -mtime, -mmin
变化时间:文件相关的数据最后一个被修改的时间==> -ctime, -cmin
搜索结果的输出
-print # 如果find返回的是true,就将文件或目录名称列出到标准输出,每列一个名称
-print0 # 如果find返回的是true,就将文件或目录名称列出到标准输出,所有的名称都在同一行
-print [格式] # 如果find返回的是true,就将文件或目录名称按指定格式输出到标准输出
-fprintf [列表文件] [输出格式] # 如果$find返回的是true,就将文件或目录名称按照指定格式把结果输出到指定文件中
搜索结果的处理
-exec [新命令] {} \; # 如果搜索结果为true就对结果执行新命令
-ok [新命令] # 如果搜索结果为true就询问是否对结果执行新命令
a.out Makefile test_scanf.c
$find . -type f -perm 0775 -exec ls -l {} \;
-rwxrwxr-x 1 linux linux 7287 10月 17 08:25 ./a.out
其他
! # 反向搜索,即搜索不满足!之后条件的文件或目录
-follow # 排除符号链接
-empty # 搜索空文件
例子
#!/bin/bash
#在指定的路径中执行grep
find $1 -name $2 |xargs grep $3 --color
which,whereis, locate, find的更多相关文章
- linux中的一些基础命令的使用(which,whereis,locate,find,alias,file,ls,cat,echo,tar,bzip2,gzip,history,mv,cp,rm)
which whereis locate find alias file ls cat echotar bzip2 gzip history mv cp rm -------------------- ...
- Linux 查找文件命令 find whereis locate
Linux 有三个查找文件的命令:find, whereis, locate 其中find 不常用,whereis与locate经常使用,因为find命令速度较慢,因为whereis与locate是利 ...
- linux的查找命令 find whereis locate
Linux 有三个查找文件的命令:find, whereis, locate 其中find 不常用,whereis与locate经常使用,因为find命令速度较慢,因为whereis与locate是利 ...
- linux文件名称查找which,whereis,locate
1. 文件名称查找 使用find查询时.因为磁盘查询.所以速度较慢. 所以linux下查询更常使用which, whereis, locate来查询,因为是利用数据库查询.所以速度非常快. 2. wh ...
- linux 文件查找,which,whereis,locate,find
linux 文件查找,which,whereis,locate,find 一:which 主要用于查找可执行命令的所在位置: 如图,查找命令 ls的目录: 二:whereis 主要用于查找命令的帮助文 ...
- centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln 内部命令和外部命令 第五节课
centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln ...
- 命令与文件的查询 which whereis locate find
一:which which查找脚本文件也就是我们的系统命令 用法:which [command] 默认根据我们PATH路径去查找,但是不同的用户肯定设置不同的PATH,所以就像普通用户查找不到一些/s ...
- lesson - 5 课程笔记 which/ type / whereis /locate /pwd / etc/passwd/ shadow/ group / gshadow /useradd /usermod /userdel /passwd / su sudo
一.which 作用: which 命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录, which 命令会在环境变量$PATH 设置的目录里查找符合条件的文件.也 ...
- lesson - 4 笔记 /inode / suid / sgid / sbit / chmod /umask / chown / rwx / wc /grep / tr / sort / cut /which / whereis / locate / find / ln /
一.帮助+基本文件管理+用户管理 1.怎么查看命令帮助 ls --help man ls :查看命令/man 5 file:查看配置文件 二.基本文件管理,通过{查,建,删,改} 四个维度介绍了不同的 ...
随机推荐
- CSS3的变形transform、过渡transition、动画animation学习
学习CSS3动画animation得先了解一些关于变形transform.过渡transition的知识 这些新属性大多在新版浏览器得到了支持,有些需要添加浏览器前缀(-webkit-.-moz-.- ...
- C#设计模式——观察者模式(Observer Pattern)1
一.概述在软件设计工作中会存在对象之间的依赖关系,当某一对象发生变化时,所有依赖它的对象都需要得到通知.如果设计的不好,很容易造成对象之间的耦合度太高,难以应对变化.使用观察者模式可以降低对象之间的依 ...
- Winform开发框架之通用数据导入导出操作的事务性操作完善
1.通用数据导入导出操作模块回顾 在我的Winfrom开发框架里面,有一个通用的导入模块,它在默默处理这把规范的Excel数据导入到不同的对象表里面,一直用它来快速完成数据导入的工作.很早在随笔< ...
- 与众不同 windows phone (47) - 8.0 其它: 锁屏信息和锁屏背景, 电池状态, 多分辨率, 商店, 内置协议, 快速恢复
[源码下载] 与众不同 windows phone (47) - 8.0 其它: 锁屏信息和锁屏背景, 电池状态, 多分辨率, 商店, 内置协议, 快速恢复 作者:webabcd 介绍与众不同 win ...
- sql server:compare data from two tables
--Comparing data between two tables in SQL Server --Create two Tables-- CREATE TABLE TableA(ID Int, ...
- 如何安装nodejs
1.进入官网https://nodejs.org/en/download/ 2.安装过程基本直接“NEXT”就可以了.(windows的安装msi文件在过程中会直接添加path的系统变量,变量值是你的 ...
- Follow me to learn how to use mvc template
Introduction After having gone through many project: Project A Project B Project C I start to write ...
- 关于网络上的各种mysql性能测试结论
关于网上的各种性能测试帖子,我想说以下几点: 1.为了使性能测试更加的客观.实际,应该说明针对什么场景进行测试,查询.还是修改,是否包含了主键,包含了几个索引,各自的差别是什么.因为不同的mysql分 ...
- QTimer太让人失望了,一秒触发一次事件都不准确。。
今天做项目中,我用QTimer来模拟数据生成,在另外的设备上接受.另外设备上有时1秒读不到数据,查询原因很久,终于发现是QTimer的问题. 测试代码如下 有兴趣同学可以自己试试. t = new Q ...
- [原创]winform_PC宴会图片抽奖/文字抽奖
14年6月 好友结婚 14年4月左右知道他们婚礼由迎宾照抽奖的环节 问我有没有可以用的抽奖软件 我网上找了一会儿,就放弃了,自己做一个更快不是? 14年6月,PC宴会图片抽奖软件成功使用 --- 操作 ...