find 常用参数

Posted 游荡的鱼

tags:

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

find 常用参数

查找命令

find 、which、whereis、locate

其中which whereis 从$PATH中去搜索,而locate需要下载安装yum -y install mlocate,初次运行locate会报错,第一次使用会先生成文件列表库

updatedb手动更新库

find:


  -ctime +/-n   #n表示大于/小于 n 访问天数

  -mtime +/-n

  -atime +/-n

  -name

  -type f/[l,s..b、c、d]

  -c[m、a]min n  #分钟

  -size

  -inum #搜索inode号的文件
  • atime #访问时间

  • mtime #内荣修改时间

  • ctime #内容和属性修改时间,其中mtime变了,ctime也就变了


[root@xujb01 test]# touch txt
[root@xujb01 test]# stat txt
  File: \'txt\'
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d    Inode: 914317      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-10-28 09:26:59.649167076 +0800
Modify: 2017-10-28 09:26:59.649167076 +0800
Change: 2017-10-28 09:26:59.649167076 +0800
 Birth: -

修改atime----------------------------------------------------------------

[root@xujb01 test]# cat txt           
[root@xujb01 test]# stat txt
  File: \'txt\'
  Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d    Inode: 914317      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-10-28 09:28:09.339172222 +0800          #cat 查看了文件atime时间变化了
Modify: 2017-10-28 09:26:59.649167076 +0800
Change: 2017-10-28 09:26:59.649167076 +0800

 Birth: -

修改mtime而产生ctime变化------------------------------------------------------------------------------

[root@xujb01 test]# echo "hello 01" > txt
[root@xujb01 test]# stat txt
  File: \'txt\'
  Size: 9             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 914317      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-10-28 09:28:09.339172222 +0800
Modify: 2017-10-28 09:29:22.921345202 +0800                       #修改了内容mtime 和 ctime 时间都更新了而atime时间没有更新
Change: 2017-10-28 09:29:22.921345202 +0800
 Birth: -

只修改ctime----------------------------------------------------------------------------

[root@xujb01 test]# chmod +x txt
[root@xujb01 test]# stat txt
  File: \'txt\'
  Size: 9             Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 914317      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2017-10-28 09:28:09.339172222 +0800
Modify: 2017-10-28 09:29:22.921345202 +0800
Change: 2017-10-28 09:31:40.687285888 +0800               #修改了文件属性ctime 时间更新了但是mtime 和 atime 都不会有变化
  • -name 搜索

[root@xujb01 test]# find / -name txt
/tmp/test/test/txt
  • -type 搜索

[root@xujb01 test]# ls;find . -type l      #搜索软链接文件
linktxt  test01  testtxt  txt  txttest
./linktxt             

[root@xujb01 test]# find . -type l -exec ls -al --color=auto {} \\;         #-exec调用并执行指令 不能用alias的内容所以 ll 会报错
lrwxrwxrwx. 1 root root 3 Oct 28 09:41 ./linktxt -> txt
  • -c[m、a]min n #分钟


  • -size +/-M[k,G]

[root@xujb01 test]# ll -h
total 72K
-r--------. 1 root root  64K Oct 28 10:02 kcore
lrwxrwxrwx. 1 root root    3 Oct 28 09:41 linktxt -> txt
drwxr-xr-x. 2 root root 4.0K Oct 28 09:38 test01
-rw-r--r--. 1 root root    0 Oct 28 09:35 testtxt
-rwxr-xr-x. 1 root root    9 Oct 28 09:29 txt
-rw-r--r--. 1 root root    0 Oct 28 09:34 txttest

*****************************************************

[root@xujb01 test]# find . -type f -size +1k -exec ls -l {} \\;          #连续两个参数 `-type` `-size` 是且的意思那有没有**或**呢

-r--------. 1 root root 65536 Oct 28 10:02 ./kcore

[root@xujb01 test]# find . -amin +15 -o -size +1k -exec ls -dl {} \\;        #-o 表示或的意思
drwxrwxrwt. 3 root root 4096 Oct 28 10:02 .
-r--------. 1 root root 65536 Oct 28 10:02 ./kcore
  • -inum

[root@xujb01 test]# ll -i
total 72
914360 -r--------. 1 root root 65536 Oct 28 10:02 kcore
914359 lrwxrwxrwx. 1 root root     3 Oct 28 09:41 linktxt -> txt
914358 drwxr-xr-x. 2 root root  4096 Oct 28 09:38 test01
914357 -rw-r--r--. 1 root root     0 Oct 28 09:35 testtxt
914317 -rwxr-xr-x. 1 root root     9 Oct 28 09:29 txt
914340 -rw-r--r--. 1 root root     0 Oct 28 09:34 txttest

[root@xujb01 test]# find /tmp -inum 914360     #可以用来找硬链接文件
/tmp/test/test/kcore

[root@xujb01 test]# ln txt test05

[root@xujb01 test]# find / -inum 914317 -exec ls -i {} \\;
914317 /tmp/test/test/test05
914317 /tmp/test/test/txt

-exec ls -i {} \\; #和find 连用 {}为前面find的内容ls 为执行的命令 后面\\;为格式 期间空格需要严格按照要求

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

find 常用参数

python常用代码

find常用参数详解

linux常用命令:find 命令参数详解

find的8种常用命令

linux常用命令:whereis 命令