Linux文件查找命令详解-which whereis find locate

原创BLog,转载请注明出处

http://blog.csdn.net/hello_hwc?viewmode=contents

which命令

首先查看man which的说明

    which - shows the full path of (shell) commands.

在$PATH目录下查找命令的绝对路径,PATH配置不同,查找的结果也不同

查看系统的PATH

[[email protected] testForCsdn]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

使用举例

[[email protected] testForCsdn]# which ls
alias ls='ls --color=tty'
        /bin/ls

过滤掉alias中的信息

[[email protected] testForCsdn]# which --skip-alias ls
/bin/ls

whereis命令

man whereis
 whereis  -  locate  the binary, source, and manual page files
       for a command

从db中查找系统特定二进制文件,源文件,和manual page文件

说明:db是系统文件信息的快照,保存在本地数据库里,查找速度会很快、db每隔一段时间更新,如果要手动更新,使用命令

updatedb

选项

-b : 只找二进制文件

-m: 只找在说明文件manual路径下的文件

-s : 只找source源文件

-u : 没有说明文档的文件

举例

1、列出与init相关的文件

[[email protected] testForCsdn]# whereis init
init: /sbin/init /etc/init.d /usr/share/man/man8/init.8.gz

2、只查找二进制文件

[[email protected] testForCsdn]# whereis -b init
init: /sbin/init /etc/init.d

locate

从db中,这里的db和whereis中的db一样,找出系统中与指定名称所有的相关文件

常用选项

-b 仅仅匹配base name

-c 统计数目

-r 正则匹配

-w 匹配完整的路径名称

-d 指定DBPATH,不用默认的/var/lib/mlocate/mlocate.db

举例

[[email protected] ~]# locate -c init
601
[[email protected] ~]# locate -bc init
486
<pre name="code" class="plain">[[email protected] ~]# locate init | mroe

find

从磁盘上查找文件,查找时可以指定路

1、-name通过名称查找

[[email protected] ~]# find /etc -name init
/etc/sysconfig/init

2、-size通过大小查找

[[email protected] ~]# find testForCsdn/ -size -2048
testForCsdn/
testForCsdn/file.txt
testForCsdn/file.softlink
testForCsdn/file.hardlink

3、 -user通过所有者查找

[[email protected] ~]# find testForCsdn/ -user root
testForCsdn/
testForCsdn/file.txt
testForCsdn/file.softlink
testForCsdn/file.hardlink

4、-ctime/mtime/atime -cmin/mmin/amin

c change 如权限改变

a access 访问

m modify 修改

time按照天为单位

min按照分钟为单位

查找一小时内访问过的文件

[[email protected] ~]# find testForCsdn/ -amin -60
testForCsdn/
testForCsdn/file.txt
testForCsdn/file.softlink
testForCsdn/file.hardlink

5、-type 按照类型来查找

常用类型

f 二进制

l 软连接

d 目录

[[email protected] ~]# find testForCsdn/ -type l
testForCsdn/file.softlink

6、-inum

查找指定inode的文件

查找指定inode然后产出

查找指定inode然后删除该文件

find / -inum  15 –exec rm –rf {} \;

7、-a -r

a and

r or

多个条件同时查找

查找大小小于2M并且类型是软连接的文件

[[email protected] ~]# find testForCsdn/ -size -2048 -a -type l
testForCsdn/file.softlink

8、exec对查找的结果进行处理

查找大小小于2M并且类型是软连接的文件,然后显示详细信息

[[email protected] ~]# find testForCsdn/ -size -2048 -a -type l -exec ls -l {} \;
lrwxrwxrwx 1 root root 8 Oct 24 20:32 testForCsdn/file.softlink -> file.txt

解释下:这里的{}是查找的结果,分号;代表结果。用\进行转义

Grep

附上之前写的一篇链接

Grep的9个经典使用场景

http://blog.csdn.net/hello_hwc/article/details/40017833

时间: 2024-10-13 11:45:55

Linux文件查找命令详解-which whereis find locate的相关文章

linux下find和locate文件查找命令详解

文件查找命令: locate命令特点 1.非实时,模糊匹配,查找是根据全系统文件数据库进行的: 2.updatedb, 手动更新生成文件数据库,默认第天凌晨4点02分更新数据库 3.速度快 find命令特点: 1.实时 2.精确 3.支持众多查找标准 4.搜索指定目录中的所有文件完成查找,但速度慢: 格式: find 查找路径 匹配标准 查找到以后的处理运作 查找路径:默认为当前目录 匹配标准:默认为指定路径下的所有文件 处理运作:默认为显示 匹配标准: -name '文件名':对文件名作精确匹

文件查找命令详解

文件查找: 在文件系统上查找符合条件的文件: (文件查找与我们之前学过的grep是不一样,grep是过滤文本的) 文件查找实现工具:locate,find (locate和find两者间的工作法则,工作模式不太一样,locate的实现机制,locate查找的机制是根据事先构建的索引来完成查找文件查找的 举例:locate  passwd 当我们执行上面的命令时会发现,虽然有文件名中包含了"passwd"但是整个文件名并不是完整的只叫passwd,locate是做模糊匹配的,就算是路径名

find、locate文件查找命令详解

一.locate:根据键值数据库模糊匹配,找路径 1.命令工作模式 (1)模糊查找 依赖于事先构建好的索引库,索引构建过程需要遍历整个根文件系统,占CPU使用资源 (2)无法实施更新 查找的是过去某一时刻更新的数据库文件,查找路径 系统自动更新:一般为每日系统例行性任务完成更新 手动更新数据库:uodatedb (3)查找速度快 通过对创建的索引库的匹配遍历查找文件路径,查询速度哦哒哒增加 2.格式:locate   [OPTION]...  PATTERN- -b:只匹配路径中的基名 -c:统

linux系统find命令详解

find命令 –用途:用于查找文件或目录 –格式:find  [查找范围]  [查找条件] 常用查找条件 –-name:按文件名称查找 –-size:按文件大小查找 –-user:按文件属主查找 –-type:按文件类型查找 –-print:以\n为换行符打印出文件(路径) 高级查找条件 –-perm:按权限查找 –-ctime(-cmin):按文件创建时间(天为单位)查找 –-atime(-amin):按访问时间查找 –-mtime(-mmin):修改时间查找 –-newer:查找比指定文件更

linux 的vim命令详解

高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的: :qx     开始记录宏,并将结果存入寄存器x q     退出记录模式 @x     播放记录在x寄存器中的宏命令 稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模 式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次.这个在文本的批处理中是非常有用的. 同时编辑多个文件 在vim众多

Linux系统进程管理命令详解

Linux管理进程的最好方法就是使用命令行下的系统命令.Linux下面的进程涉及的命令有at, bg, fg, kill, crontab, jobs, ps, pstree, top, nice, renice, sleep, nohup. 1.at命令:定时运行命令 作用:at命令在指定时刻执行指定的命令序列. 格式: at [-V] [-q x] [-f file] [-m] time atq [-V] [-q x] atrm [-V] [-q x] job- batch [-V] [-f

linux下tar命令详解

 linux下tar命令详解  tar是Linux环境下最常用的备份工具之一.tar(tap archive)原意为操作磁带文件,但基于Linux的文件操作机制,同样也可适用于普通的磁盘文件.tar可用于建立.还原.查看.管理文件,也可方 便的追加新文件到备份文件中,或仅更新部分的备份文件,以及解压.删除指定的文件.熟悉其常用参数,能方便日常的系统管理工作. 一.版本 还是那句,不同的操作系统,tar的命令参数是有点区别的: 引用 # tar --version tar (GNU tar) 1.

linux主要shell命令详解

Linux主要shell命令详解 shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash.本章讲述了shell的工作原理,shell的种类,shell的一般操作及Bash的特性. 什么是shell Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口.它是命令语言.命令解释程序及程序设计语言的统称. shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层.当从sh

(转)Linux下PS命令详解

(转)Linux下PS命令详解 整理自:http://blog.chinaunix.net/space.php?uid=20564848&do=blog&id=74654 要对系统中进程进行监测控制,查看状态,内存,CPU的使用情况,使用命令:/bin/ps (1) ps :是显示瞬间进程的状态,并不动态连续: (2) top:如果想对进程运行时间监控,应该用 top 命令: (3) kill 用于杀死进程或者给进程发送信号: (4) 查看文章最后的man手册,可以查看ps的每项输出的含义