@linux文件查找find命令

1|0

1|01. Find概述

可以根据文件的名称、文件大小、文件的修改时间、文件的类型、文件的权限、文件的属主属组、文件的目录层级进行查找 Find的语法: 命令 路径 选项 表达式 动作 查找 地区 妹子 18-25 约

1|02. 根据文件名称查找

选项: -name #根据名称查找 -i #忽略大小写 -iname 通配符 * #所有 #匹配任意一个字符 只能匹配一个 [] #匹配中括号中的任意一个字符 [^] #排除中括号中的字符 #精确查找 [root@qls ~]# find / -name "hostnamectl" /usr/bin/hostnamectl /usr/share/bash-completion/completions/hostnamectl #查找以什么开头的 [root@qls ~]# find / -name "hostnamectl*" /usr/bin/hostnamectl /usr/share/man/man1/hostnamectl.1.gz /usr/share/bash-completion/completions/hostnamectl #以什么为结尾的 [root@qls ~]# find / -name "*hostnamectl" /usr/bin/hostnamectl /usr/share/bash-completion/completions/hostnamectl /usr/share/zsh/site-functions/_hostnamectl #查找包含某个字符串的查找 [root@qls ~]# touch /tmp/rrhostnamectlfg [root@qls ~]# find / -name "*hostnamectl*" /tmp/rrhostnamectlfg /usr/bin/hostnamectl /usr/share/man/man1/hostnamectl.1.gz /usr/share/bash-completion/completions/hostnamectl /usr/share/zsh/site-functions/_hostnamectl #忽略大小写 [root@qls ~]# touch Hostnamectl [root@qls ~]# find / -name "*hostnamectl*" /tmp/rrhostnamectlfg /usr/bin/hostnamectl /usr/share/man/man1/hostnamectl.1.gz /usr/share/bash-completion/completions/hostnamectl /usr/share/zsh/site-functions/_hostnamectl [root@qls ~]# find / -iname "*hostnamectl*" /root/Hostnamectl /tmp/rrhostnamectlfg /usr/bin/hostnamectl /usr/share/man/man1/hostnamectl.1.gz /usr/share/bash-completion/completions/hostnamectl /usr/share/zsh/site-functions/_hostnamectl [root@qls ~]# mkdir test [root@qls ~]# touch test/hostnamectl{a..g} [root@qls ~]# touch test/hostnamectl{o..t} [root@qls ~]# touch test/hostnamectl{o..t}123 [root@qls ~]# ll test/ total 0 -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectla -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectlb -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectlc -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectld -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectle -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectlf -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectlg -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectlo -rw-r--r-- 1 root root 0 Jul 27 17:03 hostnamectlo123 -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectlp -rw-r--r-- 1 root root 0 Jul 27 17:03 hostnamectlp123 -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectlq -rw-r--r-- 1 root root 0 Jul 27 17:03 hostnamectlq123 -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectlr -rw-r--r-- 1 root root 0 Jul 27 17:03 hostnamectlr123 -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectls -rw-r--r-- 1 root root 0 Jul 27 17:03 hostnamectls123 -rw-r--r-- 1 root root 0 Jul 27 17:02 hostnamectlt -rw-r--r-- 1 root root 0 Jul 27 17:03 hostnamectlt123 [root@qls ~]# find /root -name "hostnamectl*" /root/test/hostnamectla /root/test/hostnamectlb /root/test/hostnamectlc /root/test/hostnamectld /root/test/hostnamectle /root/test/hostnamectlf /root/test/hostnamectlg /root/test/hostnamectlo /root/test/hostnamectlp /root/test/hostnamectlq /root/test/hostnamectlr /root/test/hostnamectls /root/test/hostnamectlt /root/test/hostnamectlo123 /root/test/hostnamectlp123 /root/test/hostnamectlq123 /root/test/hostnamectlr123 /root/test/hostnamectls123 /root/test/hostnamectlt123 [root@qls ~]# find /root -name "hostnamectl?" /root/test/hostnamectla /root/test/hostnamectlb /root/test/hostnamectlc /root/test/hostnamectld /root/test/hostnamectle /root/test/hostnamectlf /root/test/hostnamectlg /root/test/hostnamectlo /root/test/hostnamectlp /root/test/hostnamectlq /root/test/hostnamectlr /root/test/hostnamectls /root/test/hostnamectlt [root@qls ~]# find /root -name "hostnamectl[abcd]" /root/test/hostnamectla /root/test/hostnamectlb /root/test/hostnamectlc /root/test/hostnamectld [root@qls ~]# find /root -name "hostnamectl[^b]" /root/test/hostnamectla /root/test/hostnamectlc /root/test/hostnamectld /root/test/hostnamectle /root/test/hostnamectlf /root/test/hostnamectlg /root/test/hostnamectlo /root/test/hostnamectlp /root/test/hostnamectlq /root/test/hostnamectlr /root/test/hostnamectls /root/test/hostnamectlt

1|03. 根据文件类型查找

选项: -type #根据类型进行查找 f #普通文件 d #目录 l #软链接 s #套接字 socket文件 p #管道文件 b #块设备 硬盘 硬盘分区 镜像光盘 c #字符设备 #查找所有的普通文件,包括隐藏文件 [root@qls ~]# find /root -type f /root/.bash_logout /root/.bash_profile /root/.cshrc /root/.tcshrc /root/.bash_history /root/.lesshst /root/.viminfo /root/Hostname /root/Hostnamectl /root/test/hostnamectla /root/test/hostnamectlb /root/test/hostnamectlc /root/test/hostnamectld #所有的目录 包括隐藏目录 也包含自己的本身 [root@qls ~]# find /root -type d /root /root/test /root/.pki /root/.pki/nssdb #tree命令会把软链接也统计成目录 软链接的源文件是目录 find不会 [root@qls ~]# tree -ad /root /root ├── opt -> /opt/ ├── .pki │ └── nssdb └── test 4 directories [root@qls ~]# find /dev -type s /dev/log [root@qls ~]# find /run -type p /run/systemd/inhibit/1.ref /run/systemd/sessions/1.ref /run/systemd/initctl/fifo [root@qls ~]# find /root -type l /root/opt [root@qls ~]# find /dev -type b /dev/sda3 /dev/sda2 /dev/sda1 /dev/sda /dev/sr0 [root@qls ~]# find /dev -type c /dev/vsock /dev/vcsa6 /dev/vcs6 /dev/vcsa5 [root@qls ~]# find / -type d -name "hostnamectl" /root/hostnamectl

1|04. 根据文件的大小查找

选项: -size #根据文件大小查找 +n #大于 -n #小于 n #精确匹配 b k M G #单位 #查找空文件 [root@qls ~]# find /var/log/ -size 0b /var/log/tallylog /var/log/anaconda/ks-script-3PCKae.log /var/log/boot.log /var/log/firewalld /var/log/maillog-20200726 /var/log/spooler-20200726 /var/log/spooler /var/log/spooler-20200716 /var/log/nginx/error.log /var/log/nginx/access.log /var/log/spooler-20200723 [root@qls ~]# ll /var/log/tallylog -rw-------. 1 root root 0 Jul 6 02:13 /var/log/tallylog [root@qls ~]# find /var/log/ -size -1k -ls 67159586 0 -rw------- 1 root root 0 Jul 6 02:13 /var/log/tallylog 67563450 0 -rw------- 1 root root 0 Jul 6 02:17 /var/log/anaconda/ks-script-3PCKae.log 67563454 0 -rw------- 1 root root 0 Jul 27 17:35 /var/log/boot.log 67563460 0 -rw-r--r-- 1 root root 0 Jul 6 02:17 /var/log/firewalld 67588777 0 -rw------- 1 root root 0 Jul 23 03:13 /var/log/maillog-20200726 67588781 0 -rw------- 1 root root 0 Jul 23 03:13 /var/log/spooler-20200726 67588808 0 -rw------- 1 root root 0 Jul 26 03:33 /var/log/spooler 67528019 0 -rw------- 1 root root 0 Jul 6 02:14 /var/log/spooler-20200716 134348936 0 -rw-r--r-- 1 root root 0 Jul 20 19:50 /var/log/nginx/error.log 134348938 0 -rw-r--r-- 1 root root 0 Jul 20 19:50 /var/log/nginx/access.log 67113674 0 -rw------- 1 root root 0 Jul 16 03:25 /var/log/spooler-20200723 [root@qls ~]# find /var/log/ -size 1k -ls #字节的大小在find中四舍五入 67160720 4 -rw-r--r-- 1 root root 193 Jul 6 02:13 /var/log/grubby_prune_debug 681834 0 drwxr-xr-x 2 root root 23 Jul 6 02:17 /var/log/tuned 714023 0 drwx------ 2 root root 23 Jul 6 02:17 /var/log/audit 67284924 0 drwxr-xr-x 2 root root 176 Jul 6 02:17 /var/log/anaconda 134317666 0 drwxr-xr-x 2 root root 6 Jul 6 02:17 /var/log/rhsm 67112876 4 -rw-r--r-- 1 root root 696 Jul 6 09:06 /var/log/vmware-network.5.log 67112867 4 -rw-r--r-- 1 root root 678 Jul 13 16:29 /var/log/vmware-network.2.log 67112878 4 -rw-r--r-- 1 root root 674 Jul 6 17:07 /var/log/vmware-network.4.log 67112882 4 -rw-r--r-- 1 root root 678 Jul 20 19:45 /var/log/vmware-network.1.log 67528018 4 -rw------- 1 root root 558 Jul 13 16:29 /var/log/maillog-20200716 134348871 0 drwxrwx--- 2 nginx root 41 Jul 20 19:50 /var/log/nginx 67588805 4 -rw------- 1 root root 186 Jul 27 16:30 /var/log/maillog 67588807 4 -rw------- 1 root root 679 Jul 27 16:30 /var/log/secure 67112916 4 -rw-r--r-- 1 root root 678 Jul 27 16:29 /var/log/vmware-network.log [root@qls ~]# find /var/log/ -type f -size 20k /var/log/cron-20200726 [root@qls ~]# find /var/log/ -type f -size 20k -ls 67588776 20 -rw------- 1 root root 19815 Jul 26 03:33 /var/log/cron-20200726 [root@qls ~]# find /var/log/ -type f -size 6k -ls 75 8 -rw-r--r-- 1 root root 6085 Jul 27 16:29 /var/log/tuned/tuned.log 67113677 8 -rw------- 1 root root 6005 Jul 27 18:01 /var/log/cron 67528017 8 -rw------- 1 root root 5865 Jul 13 16:29 /var/log/secure-20200716 67112870 8 -rw-r--r-- 1 root root 5650 Jul 6 08:52 /var/log/vmware-network.9.log 67112865 8 -rw-r--r-- 1 root root 5650 Jul 9 10:36 /var/log/vmware-network.3.log #根据范围进行查找 [root@qls ~]# find /var/log/ -type f -size +100k -size -1000k /var/log/anaconda/syslog /var/log/anaconda/packaging.log /var/log/anaconda/storage.log /var/log/dmesg.old /var/log/messages-20200716 /var/log/messages-20200723 /var/log/messages /var/log/dmesg [root@qls ~]# find /var/log/ -type f -size +100k -size -1000k -ls 67496291 276 -rw------- 1 root root 281510 Jul 6 02:17 /var/log/anaconda/syslog 67563447 112 -rw------- 1 root root 110647 Jul 6 02:17 /var/log/anaconda/packaging.log 67563448 124 -rw------- 1 root root 124184 Jul 6 02:17 /var/log/anaconda/storage.log 67112877 120 -rw-r--r-- 1 root root 122832 Jul 20 19:45 /var/log/dmesg.old 67528016 388 -rw------- 1 root root 395555 Jul 16 03:25 /var/log/messages-20200716 67113672 148 -rw------- 1 root root 148158 Jul 23 03:13 /var/log/messages-20200723 67588806 120 -rw------- 1 root root 122869 Jul 27 18:01 /var/log/messages 67112864 120 -rw-r--r-- 1 root root 122838 Jul 27 16:29 /var/log/dmesg #四舍五入 1k [root@qls ~]# find /var/log/ -type f -size 5k /var/log/vmware-network.8.log [root@qls ~]# find /var/log/ -type f -size 5k -ls 67112873 8 -rw-r--r-- 1 root root 4127 Jul 6 09:05 /var/log/vmware-network.8.log #以M为单位查找时,所有小于1M的文件都四舍五入到1M [root@qls ~]# find /var/log/ -type f -size 1M -ls 67160720 4 -rw-r--r-- 1 root root 193 Jul 6 02:13 /var/log/grubby_prune_debug 67284922 48 -rw-rw-r-- 1 root utmp 45696 Jul 27 16:30 /var/log/wtmp 67284923 8 -rw------- 1 root utmp 6912 Jul 23 12:09 /var/log/btmp 75 8 -rw-r--r-- 1 root root 6085 Jul 27 16:29 /var/log/tuned/tuned.log 67495714 28 -rw------- 1 root root 26591 Jul 6 02:17 /var/log/anaconda/anaconda.log 67496291 276 -rw------- 1 root root 281510 Jul 6 02:17 /var/log/anaconda/syslog 67563444 24 -rw------- 1 root root 21872 Jul 6 02:17 /var/log/anaconda/X.log 67563445 32 -rw------- 1 root root 29721 Jul 6 02:17 /var/log/anaconda/program.log 67563447 112 -rw------- 1 root root 110647 Jul 6 02:17 /var/log/anaconda/packaging.log 67563448 124 -rw------- 1 root root 124184 Jul 6 02:17 /var/log/anaconda/storage.log 67563449 4 -rw------- 1 root root 4017 Jul 6 02:17 /var/log/anaconda/ifcfg.log 67563456 12 -rw-r--r-- 1 root root 10054 Jul 27 16:29 /var/log/vmware-vmsvc.log 67563457 8 -rw-r--r-- 1 root root 6934 Jul 27 16:29 /var/log/vmware-vgauthsvc.log.0 67113677 8 -rw------- 1 root root 6005 Jul 27 18:01 /var/log/cron 67588778 12 -rw------- 1 root root 9327 Jul 26 03:33 /var/log/messages-20200726 67588779 16 -rw------- 1 root root 13606 Jul 24 12:11 /var/log/secure-20200726 67112873 8 -rw-r--r-- 1 root root 4127 Jul 6 09:05 /var/log/vmware-network.8.log 67112876 4 -rw-r--r-- 1 root root 696 Jul 6 09:06 /var/log/vmware-network.5.log 67112867 4 -rw-r--r-- 1 root root 678 Jul 13 16:29 /var/log/vmware-network.2.log 67588799 8 -rw------- 1 root root 8015 Jul 27 17:35 /var/log/boot.log-20200727 67112877 120 -rw-r--r-- 1 root root 122832 Jul 20 19:45 /var/log/dmesg.old 67112871 4 -rw-r--r-- 1 root root 3986 Jul 6 09:05 /var/log/vmware-network.7.log 67112878 4 -rw-r--r-- 1 root root 674 Jul 6 17:07 /var/log/vmware-network.4.log 67112882 4 -rw-r--r-- 1 root root 678 Jul 20 19:45 /var/log/vmware-network.1.log 67112913 20 -rw------- 1 root root 16395 Jul 10 03:20 /var/log/boot.log-20200710 67112924 4 -rw------- 1 root root 3925 Jul 22 08:51 /var/log/yum.log 67112866 8 -rw------- 1 root root 7969 Jul 13 17:29 /var/log/boot.log-20200713 67112869 32 -rw------- 1 root root 32040 Jul 16 03:25 /var/log/cron-20200716 67528018 4 -rw------- 1 root root 558 Jul 13 16:29 /var/log/maillog-20200716 67528016 388 -rw------- 1 root root 395555 Jul 16 03:25 /var/log/messages-20200716 67528017 8 -rw------- 1 root root 5865 Jul 13 16:29 /var/log/secure-20200716 67112870 8 -rw-r--r-- 1 root root 5650 Jul 6 08:52 /var/log/vmware-network.9.log 67491686 8 -rw------- 1 root root 8015 Jul 20 20:25 /var/log/boot.log-20200720 67113669 40 -rw------- 1 root root 37990 Jul 23 03:13 /var/log/cron-20200723 67113670 4 -rw------- 1 root root 1856 Jul 22 11:11 /var/log/maillog-20200723 67113672 148 -rw------- 1 root root 148158 Jul 23 03:13 /var/log/messages-20200723 67113673 48 -rw------- 1 root root 48914 Jul 22 12:22 /var/log/secure-20200723 67588776 20 -rw------- 1 root root 19815 Jul 26 03:33 /var/log/cron-20200726 67588805 4 -rw------- 1 root root 186 Jul 27 16:30 /var/log/maillog 67588806 120 -rw------- 1 root root 122869 Jul 27 18:01 /var/log/messages 67588807 4 -rw------- 1 root root 679 Jul 27 16:30 /var/log/secure 67112864 120 -rw-r--r-- 1 root root 122838 Jul 27 16:29 /var/log/dmesg 67112875 4 -rw-r--r-- 1 root root 3986 Jul 6 09:06 /var/log/vmware-network.6.log 67112865 8 -rw-r--r-- 1 root root 5650 Jul 9 10:36 /var/log/vmware-network.3.log 67112916 4 -rw-r--r-- 1 root root 678 Jul 27 16:29 /var/log/vmware-network.log [root@qls ~]# find /var/log/ -type f -size -1M -ls 67159586 0 -rw------- 1 root root 0 Jul 6 02:13 /var/log/tallylog 67563450 0 -rw------- 1 root root 0 Jul 6 02:17 /var/log/anaconda/ks-script-3PCKae.log 67563454 0 -rw------- 1 root root 0 Jul 27 17:35 /var/log/boot.log 67563460 0 -rw-r--r-- 1 root root 0 Jul 6 02:17 /var/log/firewalld 67588777 0 -rw------- 1 root root 0 Jul 23 03:13 /var/log/maillog-20200726 67588781 0 -rw------- 1 root root 0 Jul 23 03:13 /var/log/spooler-20200726 67588808 0 -rw------- 1 root root 0 Jul 26 03:33 /var/log/spooler 67528019 0 -rw------- 1 root root 0 Jul 6 02:14 /var/log/spooler-20200716 134348936 0 -rw-r--r-- 1 root root 0 Jul 20 19:50 /var/log/nginx/error.log 134348938 0 -rw-r--r-- 1 root root 0 Jul 20 19:50 /var/log/nginx/access.log 67113674 0 -rw------- 1 root root 0 Jul 16 03:25 /var/log/spooler-20200723 [root@qls ~]# find /var/log/ -type f -size 2M -ls 67263633 40 -rw-r--r-- 1 root root 1946764 Jul 27 16:30 /var/log/lastlog 714345 1436 -rw------- 1 root root 1468869 Jul 27 18:01 /var/log/audit/audit.log 67563451 1520 -rw------- 1 root root 1552657 Jul 6 02:17 /var/log/anaconda/journal.log [root@qls ~]# ll -h /var/log/lastlog -rw-r--r--. 1 root root 1.9M Jul 27 16:30 /var/log/lastlog [root@qls ~]# ll -h /var/log/audit/audit.log -rw-------. 1 root root 1.5M Jul 27 18:01 /var/log/audit/audit.log [root@qls ~]# find /var/log/ -type f -size +2M -ls 67113676 5704 -rw-r--r-- 1 root root 5840292 Jul 27 17:56 /var/log/test.log [root@qls ~]# find /var/log/ -type f -size 6M -ls 67113676 5704 -rw-r--r-- 1 root root 5840292 Jul 27 17:56 /var/log/test.log [root@qls ~]# find /var/log/ -type f -size +2M -size -7M /var/log/test.log [root@qls ~]# dd </dev/zero >/var/log/123.log bs=100M count=13 13+0 records in 13+0 records out 1363148800 bytes (1.4 GB) copied, 28.178 s, 48.4 MB/s [root@qls ~]# ll /var/log/123.log -rw-r--r-- 1 root root 1363148800 Jul 27 18:17 /var/log/123.log [root@qls ~]# ll /var/log/123.log -h -rw-r--r-- 1 root root 1.3G Jul 27 18:17 /var/log/123.log [root@qls ~]# find /var/log/ -type f -size +1G -ls 67588811 1331200 -rw-r--r-- 1 root root 1363148800 Jul 27 18:17 /var/log/123.log [root@qls ~]# find /var/log/ -type f -size 2G -ls 67588811 1331200 -rw-r--r-- 1 root root 1363148800 Jul 27 18:17 /var/log/123.log

1|05. 根据文件的时间查找

选项: -mtime #最后修改时间 +n #多少天以前 -n #多少天以内 n #具体某一天 [root@qls ~]# for i in {01..27};do date -s 2020/07/$i && touch data/file-${i}.txt;done [root@qls ~]# [root@qls ~]# ntpdate ntp.aliyun.com [root@qls ~]# ll data/ total 0 -rw-r--r-- 1 root root 0 Jul 10 00:00 file-10.txt -rw-r--r-- 1 root root 0 Jul 11 00:00 file-11.txt -rw-r--r-- 1 root root 0 Jul 12 00:00 file-12.txt -rw-r--r-- 1 root root 0 Jul 13 00:00 file-13.txt -rw-r--r-- 1 root root 0 Jul 14 00:00 file-14.txt -rw-r--r-- 1 root root 0 Jul 15 00:00 file-15.txt -rw-r--r-- 1 root root 0 Jul 16 00:00 file-16.txt -rw-r--r-- 1 root root 0 Jul 17 00:00 file-17.txt -rw-r--r-- 1 root root 0 Jul 18 00:00 file-18.txt -rw-r--r-- 1 root root 0 Jul 19 00:00 file-19.txt -rw-r--r-- 1 root root 0 Jul 1 00:00 file-1.txt -rw-r--r-- 1 root root 0 Jul 20 00:00 file-20.txt -rw-r--r-- 1 root root 0 Jul 21 00:00 file-21.txt -rw-r--r-- 1 root root 0 Jul 22 00:00 file-22.txt -rw-r--r-- 1 root root 0 Jul 23 00:00 file-23.txt -rw-r--r-- 1 root root 0 Jul 24 00:00 file-24.txt -rw-r--r-- 1 root root 0 Jul 25 00:00 file-25.txt -rw-r--r-- 1 root root 0 Jul 26 00:00 file-26.txt -rw-r--r-- 1 root root 0 Jul 27 00:00 file-27.txt -rw-r--r-- 1 root root 0 Jul 2 00:00 file-2.txt -rw-r--r-- 1 root root 0 Jul 3 00:00 file-3.txt -rw-r--r-- 1 root root 0 Jul 4 00:00 file-4.txt -rw-r--r-- 1 root root 0 Jul 5 00:00 file-5.txt -rw-r--r-- 1 root root 0 Jul 6 00:00 file-6.txt -rw-r--r-- 1 root root 0 Jul 7 00:00 file-7.txt -rw-r--r-- 1 root root 0 Jul 8 00:00 file-8.txt -rw-r--r-- 1 root root 0 Jul 9 00:00 file-9.txt [root@qls ~]# [root@qls ~]# find /root -type f -mtime +7 #查找7天以前的 /root/.bash_logout /root/.cshrc /root/.tcshrc /root/.lesshst /root/.vimrc /root/data/file-1.txt /root/data/file-2.txt /root/data/file-3.txt /root/data/file-4.txt /root/data/file-5.txt /root/data/file-6.txt /root/data/file-7.txt /root/data/file-8.txt /root/data/file-9.txt /root/data/file-10.txt /root/data/file-11.txt /root/data/file-12.txt /root/data/file-13.txt /root/data/file-14.txt /root/data/file-15.txt /root/data/file-16.txt /root/data/file-17.txt /root/data/file-18.txt /root/data/file-19.txt [root@qls ~]# find /root -type f -mtime 7 #查找第七天 /root/data/file-20.txt [root@qls ~]# find /root -type f -mtime -7 #查找七天以内 /root/.bash_profile /root/.bash_history /root/.viminfo /root/.bashrc /root/data/file-21.txt /root/data/file-22.txt /root/data/file-23.txt /root/data/file-24.txt /root/data/file-25.txt /root/data/file-26.txt /root/data/file-27.txt [root@qls ~]# find /root -type f -mtime +3 |xargs rm -f [root@qls ~]# find /var/log/ -type f -size +1G -mtime -1 | xargs rm -f

1|06. 根据文件的权限查找

选项: -perm #根据权限查找 -421 #包含这些权限 421 #精确匹配 /421 #包含其中的某个权限 三个身份中满足一个则匹配 ! #取反 [root@qls ~]# find /root -type f /root/.bash_history /root/.viminfo /root/data/file-24.txt /root/data/file-25.txt /root/data/file-26.txt /root/data/file-27.txt [root@qls ~]# find /root ! -type f #排除普通的文件的其他所有类型文件 /root /root/.pki /root/.pki/nssdb /root/data #精确匹配 [root@qls ~]# chmod 633 data/file-24.txt [root@qls ~]# ll data/ total 0 -rw--wx-wx 1 root root 0 Jul 24 00:00 file-24.txt -rw-r--r-- 1 root root 0 Jul 25 00:00 file-25.txt -rw-r--r-- 1 root root 0 Jul 26 00:00 file-26.txt -rw-r--r-- 1 root root 0 Jul 27 00:00 file-27.txt [root@qls ~]# find data/ -type f -perm 644 data/file-25.txt data/file-26.txt data/file-27.txt [root@qls ~]# find data/ -type f -perm 633 data/file-24.txt #满足查找最低权限 每个身份都有满足 [root@qls ~]# find data/ -type f -perm -644 data/file-26.txt data/file-27.txt [root@qls ~]# ll data/ total 0 -rw--wx-wx 1 root root 0 Jul 24 00:00 file-24.txt -r--r--r-- 1 root root 0 Jul 25 00:00 file-25.txt -rw-r--r-- 1 root root 0 Jul 26 00:00 file-26.txt -rw-r--r-- 1 root root 0 Jul 27 00:00 file-27.txt [root@qls ~]# chmod 666 data/file-25.txt [root@qls ~]# find data/ -type f -perm -644 data/file-25.txt data/file-26.txt data/file-27.txt [root@qls ~]# chmod 744 data/file-26.txt [root@qls ~]# find data/ -type f -perm -644 data/file-25.txt data/file-26.txt data/file-27.txt #满足一个身份的某个权限就可以 [root@qls ~]# ll data/ total 0 -rw--wx-wx 1 root root 0 Jul 24 00:00 file-24.txt -rw-rw-rw- 1 root root 0 Jul 25 00:00 file-25.txt -rwxr--r-- 1 root root 0 Jul 26 00:00 file-26.txt -rw-r--r-- 1 root root 0 Jul 27 00:00 file-27.txt [root@qls ~]# find data/ -type f -perm /644 data/file-24.txt data/file-25.txt data/file-26.txt data/file-27.txt [root@qls ~]# chmod 333 data/file-24.txt [root@qls ~]# find data/ -type f -perm /644 data/file-24.txt data/file-25.txt data/file-26.txt data/file-27.txt [root@qls ~]# ll data/ total 0 --wx-wx-wx 1 root root 0 Jul 24 00:00 file-24.txt -rw-rw-rw- 1 root root 0 Jul 25 00:00 file-25.txt -rwxr--r-- 1 root root 0 Jul 26 00:00 file-26.txt -rw-r--r-- 1 root root 0 Jul 27 00:00 file-27.txt [root@qls ~]# find data/ -type f -perm /444 data/file-25.txt data/file-26.txt data/file-27.txt [root@qls ~]# find / -perm -4000 -ls 201418870 24 -rws--x--x 1 root root 24048 Oct 31 2018 /usr/bin/chfn 201418873 24 -rws--x--x 1 root root 23960 Oct 31 2018 /usr/bin/chsh 201369302 32 -rwsr-xr-x 1 root root 32096 Oct 31 2018 /usr/bin/fusermount 201418745 80 -rwsr-xr-x 1 root root 78272 Oct 31 2018 /usr/bin/gpasswd [root@qls ~]# find / -perm -2000 -ls 201368725 16 -r-xr-sr-x 1 root tty 15344 Jun 10 2014 /usr/bin/wall 201418931 20 -rwxr-sr-x 1 root tty 19624 Oct 31 2018 /usr/bin/write 201614897 376 ---x--s--x 1 root nobody 382240 Apr 11 2018 /usr/bin/ssh-agent 201682585 40 -rwx--s--x 1 root slocate 40520 Apr 11 2018 /usr/bin/locate 682454 216 -rwxr-sr-x 1 root postdrop 218632 Oct 31 2018 /usr/sbin/postdrop [root@qls ~]# find / -perm -1000 -ls 67108936 4 drwxrwxrwt 16 root root 4096 Jul 27 2020 /tmp 187047 0 drwxrwxrwt 2 root root 6 Jul 6 02:14 /tmp/.font-unix 67284921 0 drwxrwxrwt 2 root root 6 Jul 6 02:14 /tmp/.XIM-unix 134469085 0 drwxrwxrwt 2 root root 6 Jul 6 02:14 /tmp/.ICE-unix 201458049 0 drwxrwxrwt 2 root root 6 Jul 6 02:14 /tmp/.X11-unix

1|07. 根据文件的属主属组查找

选项: -user #根据属主 -group #根据属组 -nouser #没有属主 -nogroup #没有属组 #查找属主为ops01 [root@qls ~]# find / -user ops01 -ls 201696842 0 -rw-rw---- 1 ops01 mail 0 Jul 24 09:08 /var/spool/mail/ops01 67588770 0 drwx------ 2 ops01 ops01 83 Jul 24 09:10 /home/ops01 67588774 4 -rw-r--r-- 1 ops01 ops01 18 Oct 31 2018 /home/ops01/.bash_logout 67588780 4 -rw-r--r-- 1 ops01 ops01 193 Oct 31 2018 /home/ops01/.bash_profile 67588782 4 -rw-r--r-- 1 ops01 ops01 231 Oct 31 2018 /home/ops01/.bashrc 67588795 4 -rw------- 1 ops01 ops01 145 Jul 24 09:55 /home/ops01/.bash_history 820161 4 -rw-rw-r-- 1 ops01 ops_group 12 Jul 24 09:16 /data/ops01.log #查找属主为ops01并且 属组为ops01 [root@qls ~]# find / -user ops01 -group ops01 -ls 67588770 0 drwx------ 2 ops01 ops01 83 Jul 24 09:10 /home/ops01 67588774 4 -rw-r--r-- 1 ops01 ops01 18 Oct 31 2018 /home/ops01/.bash_logout 67588780 4 -rw-r--r-- 1 ops01 ops01 193 Oct 31 2018 /home/ops01/.bash_profile 67588782 4 -rw-r--r-- 1 ops01 ops01 231 Oct 31 2018 /home/ops01/.bashrc 67588795 4 -rw------- 1 ops01 ops01 145 Jul 24 09:55 /home/ops01/.bash_history # -a 并且 [root@qls ~]# find / -user ops01 -a -group ops01 -ls 67588770 0 drwx------ 2 ops01 ops01 83 Jul 24 09:10 /home/ops01 67588774 4 -rw-r--r-- 1 ops01 ops01 18 Oct 31 2018 /home/ops01/.bash_logout 67588780 4 -rw-r--r-- 1 ops01 ops01 193 Oct 31 2018 /home/ops01/.bash_profile 67588782 4 -rw-r--r-- 1 ops01 ops01 231 Oct 31 2018 /home/ops01/.bashrc 67588795 4 -rw------- 1 ops01 ops01 145 Jul 24 09:55 /home/ops01/.bash_history [root@qls ~]# find / -user ops01 -a -group ops_group -ls 67495942 0 --wx-wx-wx 1 ops01 ops_group 0 Jul 24 00:00 /root/data/file-24.txt 820161 4 -rw-rw-r-- 1 ops01 ops_group 12 Jul 24 09:16 /data/ops01.log #括号前后要有空格 也需要使用转义字符进行转义 -o 或者 [root@qls ~]# find / \( -user ops01 -o -group ops_group \) -ls 67495942 0 --wx-wx-wx 1 ops01 ops_group 0 Jul 24 00:00 /root/data/file-24.txt 201696842 0 -rw-rw---- 1 ops01 mail 0 Jul 24 09:08 /var/spool/mail/ops01 67588770 0 drwx------ 2 ops01 ops01 83 Jul 24 09:10 /home/ops01 67588774 4 -rw-r--r-- 1 ops01 ops01 18 Oct 31 2018 /home/ops01/.bash_logout 67588780 4 -rw-r--r-- 1 ops01 ops01 193 Oct 31 2018 /home/ops01/.bash_profile 67588782 4 -rw-r--r-- 1 ops01 ops01 231 Oct 31 2018 /home/ops01/.bashrc 67588795 4 -rw------- 1 ops01 ops01 145 Jul 24 09:55 /home/ops01/.bash_history 818813 0 drwxrws--- 3 root ops_group 121 Jul 20 10:48 /data 820160 4 -rw-r--r-- 1 root ops_group 5 Jul 24 09:14 /data/root.log 820161 4 -rw-rw-r-- 1 ops01 ops_group 12 Jul 24 09:16 /data/ops01.log 820162 4 -rw-rw-r-- 1 ops02 ops_group 6 Jul 24 09:15 /data/ops02.log 818814 0 drwxrwsr-x 2 ops02 ops_group 6 Jul 24 09:21 /data/test 820215 0 -rw-r--r-- 1 root ops_group 0 Jul 20 10:48 /data/file-20.log #没有属主 [root@qls ~]# find / -nouser -ls 201729427 0 -rw-rw---- 1 666 mail 0 Jul 21 16:47 /var/spool/mail/user02 201685422 0 -rw-rw---- 1 6666 mail 0 Jul 21 16:40 /var/spool/mail/user123 #没有属组的 [root@qls ~]# find / -nogroup -ls 134355712 0 -rw------- 1 root 1013 0 Jul 22 11:11 /var/db/sudo/lectured/qiudao #没有属主也没有属组的 [root@qls ~]# userdel ops02 [root@qls ~]# ll data/file-26.txt 67255910 0 -rwxr--r-- 1 1045 1047 0 Jul 26 00:00 /root/data/file-26.txt 134356976 0 drwx------ 2 1045 1047 99 Jul 24 09:16 /home/ops02 134356977 4 -rw-r--r-- 1 1045 1047 18 Oct 31 2018 /home/ops02/.bash_logout 134356978 4 -rw-r--r-- 1 1045 1047 193 Oct 31 2018 /home/ops02/.bash_profile 134356979 4 -rw-r--r-- 1 1045 1047 231 Oct 31 2018 /home/ops02/.bashrc 134356980 4 -rw------- 1 1045 1047 276 Jul 24 09:49 /home/ops02/.bash_history 134356968 4 -rw------- 1 1045 1047 637 Jul 24 09:16 /home/ops02/.viminfo 818815 0 -rw-rw-r-- 1 1045 1047 0 Jul 24 09:11 /data/ops02.txt [root@qls ~]# find / \( -nouser -o -nogroup \) -ls 67255910 0 -rwxr--r-- 1 1045 1047 0 Jul 26 00:00 /root/data/file-26.txt 134355712 0 -rw------- 1 root 1013 0 Jul 22 11:11 /var/db/sudo/lectured/qiudao 201729427 0 -rw-rw---- 1 666 mail 0 Jul 21 16:47 /var/spool/mail/user02 201685422 0 -rw-rw---- 1 6666 mail 0 Jul 21 16:40 /var/spool/mail/user123 201696843 0 -rw-rw---- 1 1045 mail 0 Jul 24 09:08 /var/spool/mail/ops02 134356976 0 drwx------ 2 1045 1047 99 Jul 24 09:16 /home/ops02 134356977 4 -rw-r--r-- 1 1045 1047 18 Oct 31 2018 /home/ops02/.bash_logout 134356978 4 -rw-r--r-- 1 1045 1047 193 Oct 31 2018 /home/ops02/.bash_profile 134356979 4 -rw-r--r-- 1 1045 1047 231 Oct 31 2018 /home/ops02/.bashrc 134356980 4 -rw------- 1 1045 1047 276 Jul 24 09:49 /home/ops02/.bash_history 134356968 4 -rw------- 1 1045 1047 637 Jul 24 09:16 /home/ops02/.viminfo 818815 0 -rw-rw-r-- 1 1045 1047 0 Jul 24 09:11 /data/ops02.txt 820162 4 -rw-rw-r-- 1 1045 ops_group 6 Jul 24 09:15 /data/ops02.log 818814 0 drwxrwsr-x 2 1045 ops_group 6 Jul 24 09:21 /data/test 基础很重要

1|08. 根据文件的目录层级查找

选项: -maxdepth #最大的目录层级 tree -L [root@qls ~]# find / -maxdepth 2 \( -nouser -o -nogroup \) -ls 134356976 0 drwx------ 2 1045 1047 99 Jul 24 09:16 /home/ops02 818815 0 -rw-rw-r-- 1 1045 1047 0 Jul 24 09:11 /data/ops02.txt 820162 4 -rw-rw-r-- 1 1045 ops_group 6 Jul 24 09:15 /data/ops02.log 818814 0 drwxrwsr-x 2 1045 ops_group 6 Jul 24 09:21 /data/test [root@qls ~]# find / -maxdepth 3 \( -nouser -o -nogroup \) -ls 67255910 0 -rwxr--r-- 1 1045 1047 0 Jul 26 00:00 /root/data/file-26.txt 134356976 0 drwx------ 2 1045 1047 99 Jul 24 09:16 /home/ops02 134356977 4 -rw-r--r-- 1 1045 1047 18 Oct 31 2018 /home/ops02/.bash_logout 134356978 4 -rw-r--r-- 1 1045 1047 193 Oct 31 2018 /home/ops02/.bash_profile 134356979 4 -rw-r--r-- 1 1045 1047 231 Oct 31 2018 /home/ops02/.bashrc 134356980 4 -rw------- 1 1045 1047 276 Jul 24 09:49 /home/ops02/.bash_history 134356968 4 -rw------- 1 1045 1047 637 Jul 24 09:16 /home/ops02/.viminfo 818815 0 -rw-rw-r-- 1 1045 1047 0 Jul 24 09:11 /data/ops02.txt 820162 4 -rw-rw-r-- 1 1045 ops_group 6 Jul 24 09:15 /data/ops02.log 818814 0 drwxrwsr-x 2 1045 ops_group 6 Jul 24 09:21 /data/test

1|09. Find的执行的动作

-print #默认的动作 打印你所查找出来的文件的名称 -ls #把查找出来的文件以长格形式显示出来文件的详细信息 -delete #把查找出来的文件进行删除 只能删除空目录 -exec #后面加自定义的shell命令 [root@qls ~]# find / -maxdepth 2 \( -nouser -o -nogroup \) /home/ops02 /data/ops02.txt /data/ops02.log /data/test [root@qls ~]# find / -maxdepth 2 \( -nouser -o -nogroup \) -print /home/ops02 /data/ops02.txt /data/ops02.log /data/test [root@qls ~]# find / -maxdepth 2 \( -nouser -o -nogroup \) -ls 134356976 0 drwx------ 2 1045 1047 99 Jul 24 09:16 /home/ops02 818815 0 -rw-rw-r-- 1 1045 1047 0 Jul 24 09:11 /data/ops02.txt 820162 4 -rw-rw-r-- 1 1045 ops_group 6 Jul 24 09:15 /data/ops02.log 818814 0 drwxrwsr-x 2 1045 ops_group 6 Jul 24 09:21 /data/test [root@qls ~]# find /opt/ -type d -name "opt" /opt/ [root@qls ~]# ll /opt/ total 0 [root@qls ~]# cp /etc/hosts /opt/ [root@qls ~]# find /opt/ -type d -name "opt" -delete find: cannot delete ‘/opt/’: Directory not empty [root@qls ~]# ll /opt/ total 4 -rw-r--r-- 1 root root 158 Jul 27 12:11 hosts [root@qls ~]# find /opt/ -type f -name "hosts" -delete [root@qls ~]# ll /opt/ total 0 [root@qls ~]# find /opt/ -type d -name "opt" -delete [root@qls ~]# find /root/data/ -type f /root/data/file-24.txt /root/data/file-25.txt /root/data/file-26.txt /root/data/file-27.txt [root@qls ~]# find /root/data/ -type f -delete [root@qls ~]# ll data/ total 0 #把某个目录下七天以前的数据删除 [root@qls ~]# find /backup -type f -mtime +7 -delete [root@qls ~]# find /var/log/ -type f -name "*.log" -exec cp {} /opt/ \; [root@qls ~]# ll /opt/ total 9076 -rw-r--r-- 1 root root 0 Jul 27 12:17 access.log -rw------- 1 root root 26591 Jul 27 12:17 anaconda.log -rw------- 1 root root 1485709 Jul 27 12:17 audit.log -rw------- 1 root root 0 Jul 27 12:17 boot.log -rw-r--r-- 1 root root 0 Jul 27 12:17 error.log -rw------- 1 root root 4017 Jul 27 12:17 ifcfg.log -rw------- 1 root root 1552657 Jul 27 12:17 journal.log -rw------- 1 root root 0 Jul 27 12:17 ks-script-3PCKae.log -rw------- 1 root root 110647 Jul 27 12:17 packaging.log -rw------- 1 root root 29721 Jul 27 12:17 program.log -rw------- 1 root root 124184 Jul 27 12:17 storage.log -rw-r--r-- 1 root root 5840292 Jul 27 12:17 test.log

1|010. Find命令跟xargs的配合

[root@qls ~]# find /var/log/ -type f -name "*.log" | xargs cp -t /opt/a [root@qls ~]# ll /opt/a total 9076 -rw-r--r-- 1 root root 0 Jul 27 12:22 access.log -rw------- 1 root root 26591 Jul 27 12:22 anaconda.log -rw------- 1 root root 1485709 Jul 27 12:22 audit.log -rw------- 1 root root 0 Jul 27 12:22 boot.log -rw-r--r-- 1 root root 0 Jul 27 12:22 error.log -rw------- 1 root root 4017 Jul 27 12:22 ifcfg.log -rw------- 1 root root 1552657 Jul 27 12:22 journal.log [root@qls ~]# find /var/log/ -type f -name "*.log" | xargs -I {} cp {} /opt/b [root@qls ~]# ll /opt/b total 9076 -rw-r--r-- 1 root root 0 Jul 27 12:23 access.log -rw------- 1 root root 26591 Jul 27 12:23 anaconda.log -rw------- 1 root root 1485709 Jul 27 12:23 audit.log -rw------- 1 root root 0 Jul 27 12:23 boot.log -rw-r--r-- 1 root root 0 Jul 27 12:23 error.log -rw------- 1 root root 4017 Jul 27 12:23 ifcfg.log [root@qls ~]# cp `find /var/log/ -type f -name "*.log"` /opt/c [root@qls ~]# ll /opt/c total 9076 -rw-r--r-- 1 root root 0 Jul 27 12:24 access.log -rw------- 1 root root 26591 Jul 27 12:24 anaconda.log -rw------- 1 root root 1485709 Jul 27 12:24 audit.log -rw------- 1 root root 0 Jul 27 12:24 boot.log -rw-r--r-- 1 root root 0 Jul 27 12:24 error.log -rw------- 1 root root 4017 Jul 27 12:24 ifcfg.log -rw------- 1 root root 1552657 Jul 27 12:24 journal.log [root@qls ~]# \cp $(find /var/log/ -type f -name "*.log") /opt/c $() == `` #优先执行里面的命令 把命令执行的结果交给外面的命令 [root@qls ~]# find /var/log/ -type f -name "*.log" |xargs ls -l -rw-------. 1 root root 26591 Jul 6 02:17 /var/log/anaconda/anaconda.log -rw-------. 1 root root 4017 Jul 6 02:17 /var/log/anaconda/ifcfg.log -rw-------. 1 root root 1552657 Jul 6 02:17 /var/log/anaconda/journal.log -rw-------. 1 root root 0 Jul 6 02:17 /var/log/anaconda/ks-script-3PCKae.log -rw-------. 1 root root 110647 Jul 6 02:17 /var/log/anaconda/packaging.log -rw-------. 1 root root 29721 Jul 6 02:17 /var/log/anaconda/program.log [root@qls ~]# find /opt/a -type f -name "*.log" |xargs rm -f [root@qls ~]# ll /opt/a total 0

__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/p/15121634.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(13)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示