find命令的用法

Posted XQR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了find命令的用法相关的知识,希望对你有一定的参考价值。

关于find命令的用法:

1.首先熟知三个time:

atime:文件被访问/读取时更新的时间

ctime:文件属性或权限被更改时更新的时间

mtime:文件内容被修改时更新的时间

关于这三个时间,mtime被更新时,ctime一定会被更新;这是因为mtime被更新时,元数据一定会发生变化,大小也会发生改变,属性也就被改变了

【用命令stat + 文件/目录可以查看三个时间】

 

2.格式:find [PATH] [option] [action]

参数:

  1. 与时间相关的参数(atime,ctime,mtime,下面以mtime为例)

a)         –mtime n:n天之前的“一天之内”被更改过的文件

b)         –mtime +n:n天之前(不包括n天)被更改过的文件

c)         –mtime –n:n天之内(包括n天)被更改过的文件

d)         –newer file:file是一个存在的文件夹,列出比file还要新的文件名

  1. 与文件权限/名称有关的参数:

a)         –name filename:查找指定目录下名称为filename的文件

b)         –type TYPE: 查找指定目录下类型为TYPE的文件

c)         –size [+-]SIZE:查看比SIZE还大(+)/小(-)的文件

d)         –perm mode:查看文件权限(用数字表示)刚好等于mode的文件

e)         –perm –mode:查看文件权限包括mode的文件(即一个文件权限为0744的文件,使用-perm -0744,4755权限的文件也会被列出来)

f)          –perm +mode:查看包含mode里面任意权限的文件(即一个文件权限为-rwxr-xr-的文件,使用-perm +755,-rw-------权限的文件也会被列出来)
【值得注意的是,find命令会查找子目录,不仅仅局限于当前目录】

  1. exec参数:
    -exec  command:command为其他参数,-exec后面接其他参数来处理找到的结果,不支持命令别名
    例:find / -perm +7000 –exec  ls –l {} \;
    {}代表find找到的内容,find的结果会被放置到{}中
    额外命令从-exec开始到\;结束,由于;在系统环境中有不同的意义,故用\来转义
  2. ok参数:
    -ok command:跟exec一样,只不过在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

3.find与xargs命令结合:

find … … |xargs + 命令:默认把find搜索到的文件/目录呈现称为一行,用空格隔开,如下:
[[email protected] tmp]# find /tmp/ -mtime -1 -type f | xargs

/tmp/test1 /tmp/test2 /tmp/test4 /tmp/test3

 

         用几个例子来演示一下:

                   [[email protected] tmp]# find /tmp/ -mtime -1 -type f | xargs rm –f
         (
把find搜索到的文件列出来,执行rm命令)

                  

[[email protected] test]# find /tmp/ -mtime -1 -type f | xargs -i mv {} {}.txt

[[email protected] test]# ls

test1.txt  test2.txt  test3.txt  test4.txt

(把find搜索到的文件改名为.txt格)
(-i的作用:把过滤出来的文件一个一个的进行操作;如果不加+i,则会变成
mv  test1  test2  test3  test4…
,test4不是文件不能进行操作

以上是关于find命令的用法的主要内容,如果未能解决你的问题,请参考以下文章

linux find的用法

Linux中find命令大全-用法示例

CMD的find命令怎么用?

Find 命令的用法

linux下find查找命令用法

Linux命令之find的用法