linux查找命令find是linux运维中很重要、很常用的命令之一,find用于根据指定条件的匹配参数来搜索和查找文件和目录列表,我们可以通过权限、用户、用户组、文件类型、日期、大小等条件来查找文件。
find语法
find [查找路径] [查找条件] [处理动作]
查找路径:指定的具体目标路径
查找条件:指定的查找标准,可以是权限、用户、用户组、文件类型、日期、大小等标准进行
处理动作:对符合条件的文件做相关操作,比如:输出屏幕,存放至某个文件中
->在当前工作目录中查找名称为ztj.txt的文件
命令:
find ztj.txt
OR
find . -name ztj.txt -maxdepth 1
- [root@rhel77 ~]# find ztj.txt
- ztj.txt
- [root@rhel77 ~]# find . -name ztj.txt -maxdepth 1
- find: warning: you have specified the -maxdepth option after a non-option argument -name, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-
- ./ztj.txt
- [root@rhel77 ~]#
->在/root目录下,查找名称为ztj.txt的所有文件
命令:
find /root -name ztj.txt
- [root@rhel77 ~]# find /root -name ztj.txt
- /root/1/ztj.txt
- /root/ztj.txt
- /root/ztj11/ztj.txt
- [root@rhel77 ~]#
->在/root目录中查找名称为z的所有目录
命令:
find /root -type d -name z
- [root@rhel77 ~]# find /root -type d -name z
- /root/z
- [root@rhel77 ~]#
其中,-type类型参数介绍如下:
f:普通文件
l:符号链接
d:目录
c:字符设备
b:块设备
s:套接字
->在/root目录下,查找所有以.zip和.log为扩展名的文件
命令:
find /root -type f
- [root@rhel77 ~]# find /root -type f \( -name "*.zip" -o -name "*.log" \) -ls
- 1731369 80 -rw-r--r-- 1 root root 81141 May 4 16:13 /root/wordpress_auto_install.log
- 1731610 4 -rw-r--r-- 1 root root 2059 Jul 28 15:14 /root/ztj.zip
- 3269480 4 -rw-r--r-- 1 root root 586 May 17 22:19 /root/disk.log
- 3257826 40 -rw-r--r-- 1 root root 40739 May 25 14:01 /root/extundelete-0.2.4/config.log
- 1731382 4 -rw-r--r-- 1 root root 642 Jul 21 14:04 /root/1.zip
- 1731605 4 -rw-r--r-- 1 root root 106 Aug 10 09:10 /root/urandom.log
- 1731400 4 -rw-r--r-- 1 root root 1475 Jul 21 14:08 /root/2.zip
- 70 4 -rw-r--r-- 1 root root 3334 Jul 20 08:50 /root/z.zip
- 3256369 4 -rw-r--r-- 1 root root 48 May 19 09:07 /root/zt1.log
- [root@rhel77 ~]#
->在/root目录下,查找所有以.png,.jpg,.php和.js为扩展名的文件
命令:
find /root -type f
- [root@rhel77 ~]# find /root -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.php" -o -name "*.js" \) -ls
- 3247961 0 -rw-r--r-- 1 root root 0 Aug 17 14:25 /root/1.png
- 3247965 0 -rw-r--r-- 1 root root 0 Aug 17 14:25 /root/2.jpg
- 3247966 0 -rw-r--r-- 1 root root 0 Aug 17 14:25 /root/3.php
- 3247967 0 -rw-r--r-- 1 root root 0 Aug 17 14:25 /root/4.js
- [root@rhel77 ~]#
->在/root目录下,查找权限为777的文件
命令:
find /root -type f -perm 0777 -maxdepth 1 -ls
- [root@rhel77 ~]# find /root -type f -perm 0777 -maxdepth 1 -ls
- find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-
- 1731602 160 -rwxrwxrwx 1 root root 160059 Aug 16 09:56 /root/abc.txt
- 3256377 4 -rwxrwxrwx 1 root root 259 May 23 16:48 /root/user_info.txt
- [root@rhel77 ~]#
->在/root目录下,查找权限不是777的文件
命令:
find /root -type f ! -perm 777 -maxdepth 1 -ls
- [root@rhel77 ~]# find /root -type f ! -perm 777 -maxdepth 1 -ls | tail -n 5
- find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-
- 3256384 4 -rwxr-xr-x 1 root root 988 May 23 22:33 /root/fdisk.sh
- 3257852 4 -rw-r--r-- 1 root root 62 May 27 14:42 /root/1234.txt
- 430437 4 -rwxr-xr-x 1 root root 64 Jun 5 21:23 /root/ztj-1.sh
- 1731615 4 -rwxr-xr-x 1 root root 21 Jun 7 13:55 /root/uuidgen.sh
- 430376 4 -rw-r--r-- 1 root root 41 Jul 21 13:59 /root/zzz.txt.bz2
- [root@rhel77 ~]#
->在/root目录下,查找权限为777的目录,将其权限设置为755
命令:
find /root -type d -perm 777 -maxdepth 1 -ls -exec chmod 755 {} \;
- [root@rhel77 ~]# find /root -type d -perm 777 -maxdepth 1 -ls -exec chmod 755 {} \;
- find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-
- 69 12 drwxrwxrwx 24 root root 8192 Aug 16 09:27 /root
- 1729025 0 drwxrwxrwx 2 root root 90 Jul 20 10:29 /root/test
->在/root目录下,查找名称为cc.txt文件,并将其删除
命令:
find /root -type f -name cc.txt -maxdepth 1 | xargs rm -rf
- [root@rhel77 ~]# find /root -type f -name cc.txt -maxdepth 1 | xargs rm -rf
- find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-
- [root@rhel77 ~]#
OR
find /root -type f -name cc.txt -maxdepth 1 -exec rm -rf {} \;
- [root@rhel77 ~]# find /root -type f -name cc.txt -maxdepth 1 -exec rm -rf {} \;
- find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.
-
- [root@rhel77 ~]#
->在/root目录下,找出权限是600的文件
命令:
find /root/ -perm 600 -ls
- [root@rhel77 ~]# find /root/ -perm 600 -ls
- 3698739 4 -rw------- 1 root root 1679 Apr 27 14:09 /root/.ssh/id_rsa
- 1601 16 -rw------- 1 root root 14605 Aug 17 10:03 /root/.bash_history
- 3247958 8 -rw------- 1 root root 5648 Aug 17 10:03 /root/.viminfo
- 1731372 0 -rw------- 1 alice alice 0 May 27 21:04 /root/test/alice.txt
- 202108776 4 -rw------- 1 root root 11 Aug 17 13:32 /root/.cache/abrt/lastnotification
- 542180 4 -rw------- 1 root root 312 Aug 10 08:51 /root/.lesshst
- 3247962 4 -rw------- 1 root root 312 Aug 17 13:32 /root/.Xauthority
- 1731398 4 -rw------- 1 root root 306 Aug 10 09:08 /root/nohup.out
- 3256372 4 -rw------- 1 root root 15 Jul 17 08:35 /root/.lvm_history
- 3547010 4 -rw------- 1 root root 18 Jun 4 12:00 /root/.mysql_history
- [root@rhel77 ~]#
上述命令(find /root/ -perm 600 -ls)会找到所有只有rw-------权限的文件。
另外,
如下命令:
find /root/ -perm -600 -ls
-600表示列出只要是包括了rw的其它位任意的文件
- [root@rhel77 ~]# find /root/ -perm -600 -ls |head -n 10
- 69 16 drwxr-xr-x 24 root root 12288 Aug 17 13:32 /root/
- 3180996 4 -rwxr-xr-x 1 root root 79 Apr 11 09:55 /root/access.sh
- 135138217 0 drwxr-xr-x 2 root root 6 Apr 24 19:08 /root/110
- 502725 4 -rw-r--r-- 1 root root 18 Dec 29 2013 /root/.bash_logout
- 542640 4 -rwxr-xr-x 1 root root 192 Mar 15 09:25 /root/earth-1.sh
- 1729048 4 -rw-r--r-- 1 root root 57 Mar 16 15:57 /root/symlinks-1.list
- 542203 4 -rwxr-xr-x 1 root root 94 Mar 30 13:57 /root/apache-1.sh
- 3193035 4 -rwxr-xr-x 1 root root 207 Apr 18 22:22 /root/spawn.sh
- 502727 4 -rw-r--r-- 1 root root 176 Dec 29 2013 /root/.bashrc
- 3181007 4 -rwxr-xr-x 1 root root 155 Apr 11 14:05 /root/case-2.sh
- [root@rhel77 ~]#
如下命令:
find /root/ -perm /600 -ls
/600表示列出指定的权限符合r--------或w--------的文件。
- [root@rhel77 ~]# find /root/ -perm /600 -ls |head -n 10
- 69 16 drwxr-xr-x 24 root root 12288 Aug 17 13:32 /root/
- 3180996 4 -rwxr-xr-x 1 root root 79 Apr 11 09:55 /root/access.sh
- 135138217 0 drwxr-xr-x 2 root root 6 Apr 24 19:08 /root/110
- 502725 4 -rw-r--r-- 1 root root 18 Dec 29 2013 /root/.bash_logout
- 542640 4 -rwxr-xr-x 1 root root 192 Mar 15 09:25 /root/earth-1.sh
- 1729048 4 -rw-r--r-- 1 root root 57 Mar 16 15:57 /root/symlinks-1.list
- 542203 4 -rwxr-xr-x 1 root root 94 Mar 30 13:57 /root/apache-1.sh
- 3193035 4 -rwxr-xr-x 1 root root 207 Apr 18 22:22 /root/spawn.sh
- 502727 4 -rw-r--r-- 1 root root 176 Dec 29 2013 /root/.bashrc
- 3181007 4 -rwxr-xr-x 1 root root 155 Apr 11 14:05 /root/case-2.sh
- [root@rhel77 ~]#
->在/root目录下,找出文件所有者为root,名称为ztj.txt的文件
命令:
find /root/ -user root -name ztj.txt -ls
- [root@rhel77 ~]# find /root/ -user root -name ztj.txt -ls
- 68916551 4 -rw-r--r-- 1 root root 28 Mar 30 16:54 /root/1/ztj.txt
- 3247948 0 -rw-r--r-- 1 root root 0 Aug 4 10:00 /root/ztj.txt
- 203522440 4 -rw-r--r-- 1 root root 4 Apr 23 2022 /root/ztj11/ztj.txt
- [root@rhel77 ~]#
->在/root目录下,找出文件属组为root,文件名称为process.txt的文件
命令:
find /root/ -group root -name process.txt -ls
- [root@rhel77 ~]# find /root/ -group root -name process.txt -ls
- 1731367 48 -rw-r--r-- 1 root root 48638 May 16 16:43 /root/process.txt
- [root@rhel77 ~]#
->在/root目录,查找所有者为root的所有.txt文件
命令:
find /root -user root -iname "*.txt" -ls
其中,
-iname:忽略name的大小写版本
- [root@rhel77 ~]# find /root -user root -iname "*.txt" -ls
- 1731370 4 -rw-r--r-- 3 root root 8 May 27 21:29 /root/test/a.txt
- 1731370 4 -rw-r--r-- 3 root root 8 May 27 21:29 /root/test/b.txt
- 1731370 4 -rw-r--r-- 3 root root 8 May 27 21:29 /root/test/d.txt
- 3181009 4 -rw-r--r-- 1 root root 14 Mar 23 15:18 /root/all.txt
- 3193028 4 -rw-r--r-- 1 root root 604 Apr 18 13:36 /root/system.txt
- 542186 4 -rw-r--r-- 1 root root 6 Mar 1 14:33 /root/bb.txt
- 1555878 4 -rw-r--r-- 1 root root 9 Jun 5 21:41 /root/user.txt
- 3193757 4 -rw-r--r-- 1 root root 154 Apr 26 08:56 /root/test.txt
- 137253126 4 -rw-r--r-- 1 root root 37 Aug 4 09:57 /root/123/zzz.txt
- 137119752 4 -rw-r--r-- 1 root root 6 Mar 15 10:12 /root/2/bb.txt
- 430370 4 -rw-r--r-- 1 root root 37 Aug 4 09:55 /root/zzz.txt
- 137259616 4 -rw-r--r-- 1 root root 3 May 27 17:05 /root/z/aa.txt
- 68916537 4 -rw-r--r-- 1 root root 2 Mar 30 16:54 /root/1/aa.txt
- 68916539 4 -rw-r--r-- 1 root root 14 Mar 30 16:54 /root/1/all.txt
- 68916543 4 -rw-r--r-- 1 root root 6 Mar 30 16:54 /root/1/bb.txt
- 68916545 4 -rw-r--r-- 1 root root 464 Mar 30 16:54 /root/1/cc.txt
- 68916547 4 -rw-r--r-- 1 root root 6 Mar 30 16:54 /root/1/user.txt
- 68916551 4 -rw-r--r-- 1 root root 28 Mar 30 16:54 /root/1/ztj.txt
- 3698754 4 -r--r--r-- 1 root root 10 Apr 28 08:58 /root/gg.txt
- 1731602 180 -rwxrwxrwx 1 root root 183335 Aug 17 13:54 /root/abc.txt
- 1731374 4 -rw-r--r-- 1 root root 58 May 13 20:12 /root/online.txt
- 1731378 4 -rw-r--r-- 1 root root 1636 May 13 20:12 /root/offline.txt
- 3269441 4 -rw-r--r-- 1 root root 132 May 9 22:15 /root/off.txt
- 3269442 4 -rw-r--r-- 1 root root 1 May 9 22:15 /root/on.txt
- 3269445 4 -rw-r--r-- 1 root root 1794 May 19 09:18 /root/a.txt
- 1731367 48 -rw-r--r-- 1 root root 48638 May 16 16:43 /root/process.txt
- 3247948 0 -rw-r--r-- 1 root root 0 Aug 4 10:00 /root/ztj.txt
- 1731387 4 -rw-r--r-- 1 root root 361 May 29 19:53 /root/1.txt
- 3193031 4 -rw-r--r-- 1 root root 56 Apr 20 10:52 /root/v.txt
- 1731403 512000 -rw-r--r-- 1 root root 524288000 May 31 08:42 /root/boc.txt
- 1729071 0 -rw-r--r-- 1 root root 0 Jul 20 08:33 /root/DDA/ztj/1.txt
- 1731379 0 -rw-r--r-- 1 root root 0 Jul 20 08:34 /root/DDA/ztj/2.txt
- 1731391 0 -rw-r--r-- 1 root root 0 Jul 20 08:34 /root/DDA/ztj/3.txt
- 1731394 0 -rw-r--r-- 1 root root 0 Jul 20 08:34 /root/DDA/ztj/4.txt
- 1731404 0 -rw-r--r-- 1 root root 0 Jul 20 08:34 /root/DDA/ztj/5.txt
- 1731406 0 -rw-r--r-- 1 root root 0 Jul 20 08:34 /root/DDA/ztj/6.txt
- 3698742 4 -rw-r--r-- 1 root root 102 Apr 23 21:12 /root/brace.txt
- 3247960 0 -rw-r--r-- 1 root root 0 Aug 17 13:53 /root/tttt.TXT
- 203522440 4 -rw-r--r-- 1 root root 4 Apr 23 2022 /root/ztj11/ztj.txt
- 203522446 0 lrwxrwxrwx 1 root root 7 Apr 23 2022 /root/ztj11/aa.txt -> ztj.txt
- 3256377 4 -rwxrwxrwx 1 root root 259 May 23 16:48 /root/user_info.txt
- 430371 4 -rw-r--r-- 1 root root 2137 Aug 4 09:55 /root/zzza.txt
- 3698759 0 lrwxrwxrwx 1 root root 7 Apr 28 09:06 /root/hh.txt -> ztj.txt
- 430369 4 -rw-r--r-- 1 root root 23 Jul 19 08:38 /root/ztj1.txt
- 3269443 4 -rw-r--r-- 1 root root 52 May 19 09:18 /root/b.txt
- 1731368 4 -rw-r--r-- 1 root root 892 May 16 16:56 /root/stat.txt
- 3256365 4 -rw-r--r-- 1 root root 6 May 18 21:01 /root/22.txt
- 3257852 4 -rw-r--r-- 1 root root 62 May 27 14:42 /root/1234.txt
- [root@rhel77 ~]#
linux系统里面的文件都有三种属性:
访问(access)时间(-atime/天,-amin/分钟):用户最近一次访问时间
修改(modify)时间(-mtime/天,-mmin/分钟):文件最后一次修改时间
变化(change)时间(-ctime/天,-cmin/分钟):文件元数据(例如权限、属性等)最后一次修改时间
->在/root目录下,查找50天外修改的所有文件
命令:
find /root -mtime +50 -ls
- [root@rhel77 ~]# find /root -mtime +50 -ls |head -n 10
- 3180996 4 -rwxr-xr-x 1 root root 79 Apr 11 09:55 /root/access.sh
- 135138217 0 drwxr-xr-x 2 root root 6 Apr 24 19:08 /root/110
- 502725 4 -rw-r--r-- 1 root root 18 Dec 29 2013 /root/.bash_logout
- 542640 4 -rwxr-xr-x 1 root root 192 Mar 15 09:25 /root/earth-1.sh
- 1729048 4 -rw-r--r-- 1 root root 57 Mar 16 15:57 /root/symlinks-1.list
- 542203 4 -rwxr-xr-x 1 root root 94 Mar 30 13:57 /root/apache-1.sh
- 3193035 4 -rwxr-xr-x 1 root root 207 Apr 18 22:22 /root/spawn.sh
- 502727 4 -rw-r--r-- 1 root root 176 Dec 29 2013 /root/.bashrc
- 3181007 4 -rwxr-xr-x 1 root root 155 Apr 11 14:05 /root/case-2.sh
- 502728 4 -rw-r--r-- 1 root root 100 Dec 29 2013 /root/.cshrc
- [root@rhel77 ~]#
->在/root目录下,查找最近1小时内修改的所有文件
命令:
find /root -mmin -60 -ls
- [root@rhel77 ~]# find /root -mmin -60 -ls
- 69 16 drwxr-xr-x 24 root root 12288 Aug 17 13:53 /root
- 201482216 0 drwxr-xr-x 2 root root 30 Aug 17 13:32 /root/.cache/abrt
- 202108776 4 -rw------- 1 root root 11 Aug 17 13:32 /root/.cache/abrt/lastnotification
- 3247962 4 -rw------- 1 root root 312 Aug 17 13:32 /root/.Xauthority
- 1731602 180 -rwxrwxrwx 1 root root 184083 Aug 17 14:11 /root/abc.txt
- 3247960 0 -rw-r--r-- 1 root root 0 Aug 17 13:53 /root/tttt.TXT
- [root@rhel77 ~]#
->在/root目录下,找到大小为15MB的文件
命令:
find /root -size 15M -ls
- [root@rhel77 ~]# find /root -size 15M -ls
- 3268520 14924 -rw-r--r-- 1 root root 15279408 Jun 3 20:18 /root/mysql-community-server-minimal-5.7.42-1.el7.x86_64.rpm
- [root@rhel77 ~]#
->在/root目录下,找到大于1MB且小于16MB的所有文件
命令:
find /root -size +1M -size -16M -ls
- [root@rhel77 ~]# find /root -size +1M -size -16M -ls
- 3268520 14924 -rw-r--r-- 1 root root 15279408 Jun 3 20:18 /root/mysql-community-server-minimal-5.7.42-1.el7.x86_64.rpm
- 3698723 8872 -rw-r--r-- 1 root root 9082696 Apr 30 07:09 /root/wordpress-4.9.4-zh_CN.tar.gz
- 69023364 1860 -rw-r--r-- 1 root root 1904320 May 25 14:01 /root/extundelete-0.2.4/src/extundelete-extundelete.o
- 69023371 1296 -rwxr-xr-x 1 root root 1323312 May 25 14:01 /root/extundelete-0.2.4/src/extundelete
- 1731386 10224 -rw-r--r-- 1 root root 10466248 May 29 13:50 /root/aa.tar.gz
- [root@rhel77 ~]#
命令:
ls -li ztj.txt
find /root -inum 3247948 -exec rm -rf {} \;
- [root@rhel77 ~]# pwd
- /root
- [root@rhel77 ~]# ls -li ztj.txt
- 3247948 -rw-r--r-- 1 root root 0 Aug 4 10:00 ztj.txt
- [root@rhel77 ~]# find /root -inum 3247948 -ls
- 3247948 0 -rw-r--r-- 1 root root 0 Aug 4 10:00 /root/ztj.txt
- [root@rhel77 ~]# find /root -inum 3247948 -exec rm -rf {} \;
- [root@rhel77 ~]# ls -li ztj.txt
- ls: cannot access ztj.txt: No such file or directory
- [root@rhel77 ~]#