为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

linux文件查找命令比较

2018-04-26 6页 doc 20KB 15阅读

用户头像

is_729658

暂无简介

举报
linux文件查找命令比较linux文件查找命令比较 linux文件查找 find / locate / whereis / which 查询系统档案时,通常不大用 find 的~因为速度慢之外,也很费硬盘~但不可否认,find的功能很强大。通常我们都是先使用 whereis 或者是 locate 来检查,如果真的找不到了,才以 find 来搜寻呦~为什么呢,因为 whereis 与 locate 是利用数据库来搜寻数据,所以相当的快速,而且并没有实际的搜寻硬盘,比较省时间啦~ 查找其他档案时,我们可以用locate和find来查询。一般先用lo...
linux文件查找命令比较
linux文件查找命令比较 linux文件查找 find / locate / whereis / which 查询系统档案时,通常不大用 find 的~因为速度慢之外,也很费硬盘~但不可否认,find的功能很强大。通常我们都是先使用 whereis 或者是 locate 来检查,如果真的找不到了,才以 find 来搜寻呦~为什么呢,因为 whereis 与 locate 是利用数据库来搜寻数据,所以相当的快速,而且并没有实际的搜寻硬盘,比较省时间啦~ 查找其他档案时,我们可以用locate和find来查询。一般先用locate查询,如果查询不到,可以先更新数据库,使用命令updatedb(/usr/bin/updatedb),也可以用find命令来查找。不过我通常用find查找,因为更新数据库太慢了。 ------------------------------------------------------which--------------------- --------------------------------------------------------------- which (在PATH(系统环境变量所的路径)中查找命令): which [-a] command 参数: -a :将所有可以找到的指令均列出,而不止第一个被找到的指令名称 范例: [root@linux ~]# which passwd /usr/bin/passwd ------------------------------------------------------whereis------------------- ------------------------------------------------------------------- whereis (查找PATH中的档案): whereis [-bmsu] 档案或目录名 参数: -b :只找 binary 的档案 -m :只找在说明文件 manual 路径下的档案 -s :只找 source 来源档案 -u :没有说明档的档案~ 示例: [root@linux ~]# whereis passwd (任何与 passwd 有关的档名都会被列出来) ------------------------------------------------------locate-------------------- --------------------------------------------------------------- locate命令 locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。 即先运行:updatedb(无论在那个目录中均可,可以放在crontab中 )后在 /var/lib/slocate/ 下生成 slocate.db 数据库即可快速查找。在命令提示符下直接执行#updatedb 命令即可: 例如:查找相关字issue $ locate issue /etc/issue /etc/issue.net ---------------------------------------------------find------------------------- ---------------------------------------------------------------- find (查找档案,功能强大,就是耗时间和硬盘): find [PATH] [option] [action] 档案或目录名称 参数: 1. 与时间有关的参数: -atime n :n 为数字,意义为在 n 天之前的『一天之内』被 access 过的档案; -ctime n :n 为数字,意义为在 n 天之前的『一天之内』被 change 过状态的档案; -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被 modification 过的档案; -newer fil就会被列出来, 2. 与使用者或群组名称有关的参数: -uid n :n 为数字,这个数字是使用者的账号 ID,亦即 UID ,这个 UID 是记录在 /etc/passwd 里面与账号名称对应的数字。这方面我们会在第四篇介绍。 -gid n :n 为数字,这个数字是群组名称的 ID,亦即 GID,这个 GID 记录在 /etc/group,相关的介绍我们会第四篇说明, -user name :name 为使用者账号名称喔~例如 dmtsai -group name:name 为群组名称喔,例如 users ; -nouser :寻找档案的拥有者不存在 /etc/passwd 的人~ -nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案~ 当您自行安装软件时,很可能该软件的属性当中并没有档案拥有者, 这是可能的~在这个时候,就可以使用 -nouser 与 -nogroup 搜寻。 3. 与档案权限及名称有关的参数: -name filename:搜寻文件名称为 filename 的档案; -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的档案。这个 SIZE 的规格有: c: 代 byte, k: 代表 1024bytes。所以,要找比 50KB 还要大的档案,就是『 -size +50k 』 -type TYPE :搜寻档案的类型为 TYPE 的,类型主要有:一般正规档案 (f), 装置档案 (b, c), 目录 (d), 连结档 (l), socket (s), 及 FIFO (p) 等属性。 -perm mode :搜寻档案属性『刚好等于』 mode 的档案,这个 mode 为类似 chmod 的属性值,举例来说, -rwsr-xr-x 的属性为 4755 ~ -perm -mode :搜寻档案属性『必须要全部囊括 mode 的属性』的档案,举例来说, 我们要搜寻 -rwxr--r-- ,亦即 0744 的档案,使用 -perm -0744, 当一个档案的属性为 -rwsr-xr-x ,亦即 4755 时,也会被列出来, 因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。 -perm +mode :搜寻档案属性『包含任一 mode 的属性』的档案,举例来说,我们搜寻 -rwxr-xr-x ,亦即 -perm +755 时,但一个档案属性为 -rw------- 也会被列出来,因为他有 -rw.... 的属性存在~ 4. 额外可进行的动作: -exec command :command 为其它指令,-exec 后面可再接额外的指令来处理搜寻到 的结果。 -print :将结果打印到屏幕上,这个动作是预设动作~ 范例: 范例一:将过去系统上面 24 小时内有更动过内容 (mtime) 的档案列出 [root@linux ~]# find / -mtime 0 # 那个 0 是重点~0 代表目前的时间,所以,从现在开始到 24 小时前, # 有变动过内容的档案都会被列出来~那如果是三天前的 24 小时内, # find / -mtime 3 ,意思是说今天之前的 3*24 ~ 4*24 小时之间 # 有变动过的档案都被列出的意思~同时 -atime 与 -ctime 的用法相同。 范例二:寻找 /etc 底下的档案,如果档案日期比 /etc/passwd 新就列出 [root@linux ~]# # -newer 用在分辨两个档案之间的新旧关系是很有用的~ 范例三:搜寻 /home 底下属于 dmtsai 的档案 [root@linux ~]# find /home -user dmtsai # 这个东西也很有用的,当我们要找出任何一个使用者在系统当中的所有档案时, # 就可以利用这个指令将属于某个使用者的所有档案都找出来喔~ 范例四:搜寻系统中不属于任何人的档案 [root@linux ~]# find / -nouser # 透过这个指令,可以轻易的就找出那些不太正常的档案。 # 如果有找到不属于系统任何人的档案时,不要太紧张, # 那有时候是正常的,尤其是您曾经以原始码自行编译软件时。 范例五:找出档名为 passwd 这个档案 [root@linux ~]# find / -name passwd # 利用这个 -name 可以搜寻档名啊~ 范例六:搜寻档案属性为 f (一般档案) 的档案 [root@linux ~]# find /home -type f # 这个 -type 的属性也很有帮助喔~尤其是要找出那些怪异的档案, # 例如 socket 与 FIFO 档案,可以用 find /var -type p 或 -type s 来找~ 范例七:搜寻档案当中含有 SGID/SUID/SBIT 的属性 [root@linux ~]# find / -perm +7000 # 所谓的 7000 就是 ---s--s--t ,那么只要含有 s 或 t 的就列出, # 所以当然要使用 +7000 ,使用 -7000 表示要含有 ---s--s--t 的所有三个权限,因此,就是 +7000 。 范例八:将上个范例找到的档案使用 ls -l 列出来 [root@linux ~]# find / -perm +7000 -exec ls -l {} \; # 注意到,那个 -exec 后面的 ls -l 就是额外的指令, # 而那个 {} 代表的是『由 find 找到的内容』的意思,所以, -exec ls -l {} # 就是将前面找到的那些档案以 ls -l 列出长的数据~至于 \; 则是表示 # -exec 的指令到此为止的意思,意思是说,整个指令其实只有在 # -exec (里面就是指令下达) \; # 也就是说,-exec 最后一定要以 \; 结束才行~这样了解了吗,~ 范例九:找出系统中,大于 1MB 的档案 [root@linux ~]# find / -size +1000k # 也可以使用 M 与 G 分别代表 MB 与 GB
/
本文档为【linux文件查找命令比较】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索