文件名查找指令find

原创 2016年06月02日 10:45:31

一,文件查找命令    

    在linux下有相当优异的查找命令。那怎么查找一个文件的存放路径呢?通常我们会用到下面这三个命令:

    which  查看可执行文件的位置。

    whereis  查看文件的位置。

    locate  配合数据库查看文件位置。

    find  实际搜寻硬盘查询文件名称。

    通常我们先使用前面三个命令来进行查找,如果真的找不到。再使用find命令来查找。因为whereis和locata是利用数据库来查找数据的,而且并没有实际查找硬盘,所以速度相当的快。

二,find命令

    find是一个很强大的命令,它是直接查找硬盘的。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

1,命令格式:

wKioL1c9hieSH39eAAAQ61zQY58647.png

2,命令功能:

    用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

3,命令参数:

PATH find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 

option 命令参数的选择。

action包含这几个选项:

-print find命令将匹配的文件输出到标准输出。-exec find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{  }和\;之间的空格。 

-ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

4,命令选项:

(1)与时间有关的参数:-atime -ctime -mtime 下面以-mtime为例进行说明:

-mtime n :n为数字,意义为n天之前的“一天以内”被更改过的文件;

-mtime +n :列出n天之前(不含n天本身)被更改过的文件名; 

-mtime -n :列出在n天之内(含n天本身)被更改过的文件名;

-newer file :file为一个存在的文件,列出比file还要新的文件名。

-newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件。

wKiom1c9q73RHorhAAB9adx97BU125.png(2)与用户和用户组有关的参数

-uid n :n为数字,这个数字是用户的账号ID,即UID,这个UID是记录在/etc/passwd里面与账号名称对应的数字。

-gid n :n为数字,这个数字是用户的账号ID,即GID,这个UID是记录在/etc/group中。

-user name :name为用户账号名称。

-group name :name为用户组名。

-nouser :寻找文件的所有者不存在于/etc/passwd的人。

-nogroup :寻找文件的所有用户组不存在于/etc/passwd中的文件。

当你自行安装软件时,很可能该软件的属性当中并没有文件所有者,这个时候可以使用-nouser与

-nogroup进行查找。

wKiom1c9rT-DDqRiAABcfzLe3Ew086.png

wKiom1c9rfSi4UOyAAAXBnMa78U361.png

wKiom1c9rkmgTvA4AAAYXXCJrE0378.png

(3)与文件权限与名称有关系的参数

-name filename :查找文件名为filename的文件。

-user :按照文件属主来查找文件。

-group 按照文件所属的组来查找文件。

-size n [c] :查找文件长度为n块的文件,带有c时表示文件长度以字节计。

-size [+-]SIZE :查找比SIZE还要大(+)或者小(-)的文件。这个SIZE的规格有:

c 代表byte

k 代表1024bytes,要找比50KB大的文件就是“-size +50k”。

-type :查找某一类型的文件,诸如:

b  块设备文件。

d  目录。

c  字符设备文件。

p  管道文件。

l  符号链接文件。

f  普通文件。

p  管道文件。

s  套接字。

-prune :使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么

-prune将被find命令忽略。

-perm :按照文件权限来查找文件。

-perm mode :查找文件权限“刚好等于”mode的文件,这个mode文件为类似chmod的属性值,举例来说,-rwsr-xr-x的属性值为4755。

-perm -mode :查找文件权限“必须要全部包含mode的权限”的文件,举例来说,我们要查找-rwxr--r--即0744的文件,当一个文件-rwxr-xr-x的权限为4755时,也会被列出来,因为-rwsr-xr-x的属性已经包括了-rwxr--r--的属性了。

-perm +mode :查找文件权限“包含mode的权限”的文件,举例来说,我们要查找-rwxr--r--即0744的文件,当一个文件-rwxr-xr-x的权限为4755时,也会被列出来,因为-rwxr-xr-x的属性已经包括了-rwxr--r--的属性了。

-depth :在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype :查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount :在查找文件时不跨越文件系统mount点。

-follow :如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio :对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

wKiom1c9rwrSbh7oAABQ50Pr71Q431.png

wKiom1c9sgTC359TAACA-UTpyoY090.png

wKiom1c9s9vQTJUeAABJl8Rm3Pw945.png

wKioL1c9tbDAi1kdAABbRmQa878681.pngwKiom1c9tzvBnr_6AAARBmeRFkA909.png

(4)其他可进行的操作

-print :将结果打印到屏幕上,这个是默认操作。

在/logs目录中查找更改时间在5日以前的文件并删除它们:

$ find logs -type f -mtime +5 -exec -ok rm {} \

wKiom1c9uZjSt1iNAAAlcAA8om0578.png

三,find的特殊功能

find的特殊功能就是能够进行额外的动作(action)。

wKioL1c9v7iTc3uVAAA7ZgrNX1w161.png

    find不但可以指定查找的目录(连同子目录),并且可以利用额外的参数来找到最正确的文件名。


    如果你要找的文件具有特殊属性,例如SUID,文件所有者,文件大小等,利用locata是没有办法达到的,但是find就可以哦。find还可以利用通配符来寻找文件名。例如:想找出/etch下面文件名包含httpd的文件,可以用下面的命令:

wKiom1c9wK7QmsgpAABWPpF4z6E178.png

find博大精深,其他的后面再了解,暂时就说这么多啦啦啦。










本文出自 “Stand out or Get out” 博客,请务必保留此出处http://jiazhenzhen.blog.51cto.com/10781724/1775182

版权声明:

相关文章推荐

Linux中文件名查找---find,whereis,locate

在Linux中查找文件通常是使用whereis和locate。因为这两个命令是利用数据库查找数据,所以速度相当快。而find命令在查找中访问了硬盘,速度相对要慢。 whereis(寻找特定文件) 格式...

Linux学习(八):文件名的查找Find

Find一.时间维度atime、-ctime、mtime以-mtime为例 -mtime n:n为数字,意义为在n天之前的“一天之内”被更改过的文件 -mtime +n :列出在n天之前(不包含n...

linux常用指令--------mkdir、chmod 、rmdir、查找(find、grep等)、管道符号(|)

1、文件权限   -  rwx    rwx    rwx mkdir: 目录创建之后  必须具备x权限 文件创建之后,没有x权限 权限掩码umask   目录真实权限=777-umas...

Linux 文件名搜索 whereis,locate,find

背景通常 find 是不常用的!因为速度慢之外, 也伤硬盘!通常我们都是先使用 whereis或者是 locate 来检查,如果真的找不到了,才以 find 来搜寻呦! 为什么呢?因为 whereis...

Linux入门:stat+文件名指令

在Linux终端下输入stat file(我的文件名就是file),会出现下列信息: 如上图所示,会出现三个类型的时间: Access:表示最后一次访问(仅仅是访问而没有改动文件)的时间 M...

Linux下的指令: 查找指令:find

Linux下find命令在目录结构中搜索文件,并执行指定的操作。 1. Linux下find命令格式: $ find pathname -options [-print -exec -ok …]...

find_first_of()和 find_last_of() 【获取路径、文件名】

原文转载自:http://blog.sina.com.cn/s/blog_68208a890100v608.html     string 类提供字符串处理函数,利用这些函数,程序员可以在字...

find_first_of()和 find_last_of() 【获取路径、文件名】

string 类提供字符串处理函数,利用这些函数,程序员可以在字符串内查找字符,提取连续字符序列(称为子串),以及在字符串中删除和添加。我们将介绍一些主要函数。 1.函数find_first_o...

Linux下的粘滞位与find指令

本篇博客给大家简单介绍一下Linux下的粘滞位和find指令,以及它们的使用方法相关例子。 一:Linux下的粘滞位 1.粘滞位: 粘滞位是一个访问权限标志位,可以用来表示文件和路径。 ...

Linux指令 find和grep

linux下的find文件查找命令与grep文件内容查找命令   在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。   区别:(1)fi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)