19-find 文件查找
Posted 人生玩家
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19-find 文件查找相关的知识,希望对你有一定的参考价值。
[TOC]
思维导图
基本语法:find [路径] [选项] [表达式] [动作]
一、按文件类型查找
-type
f:可编辑文件
d:目录
l:软连接文件
b:块设备文件,如:磁盘,U盘 /dev/sda
c:字符设备文件,终端
s:socket 安全套结文件
p:管道文件
find [路径] [选项]
0 ? 07:32:17 root@yyds,10.0.0.100:<sub> # find /run -type s -ls
16888 0 srw-rw-rw- 1 root root 0 Apr 14 07:28 /run/vmware/guestServicePipe
16392 0 srw-rw-rw- 1 root root 0 Apr 14 07:28 /run/dbus/system_bus_socket
13568 0 srw------- 1 root root 0 Apr 14 07:28 /run/udev/control
# 查找找到文件的详细信息
0 ✓ 07:32:26 root@yyds,10.0.0.100:</sub> # find /run -type s |xargs ls -l
srw-rw-rw-. 1 root root 0 Apr 14 07:28 /run/dbus/system_bus_socket
srwx------. 1 root root 0 Apr 14 07:28 /run/systemd/cgroups-agent
srw-rw-rw-. 1 root root 0 Apr 14 07:28 /run/systemd/journal/socket
#查找/etc/目录下所有目录,一共有多少?
0 ✓ 07:33:44 root@yyds,10.0.0.100:~ # find /etc/ -type d |wc -l
596
二、按文件大小查找
-size
-:小于
+:大于
Num:精准但又不太精准的匹配
#1.在/opt下创建1000个文件
0 ✓ 07:45:56 root@yyds,10.0.0.100:<sub> # touch /opt/file1..1000.txt
#2.使用find找到(/opt下小于1k的文件)并删除
127 ✗ 07:48:49 root@yyds,10.0.0.100:</sub> # find /opt -size -1k|xargs rm -fr
#mv 原文件 目标路径
mv -t 目标路径 原文件
0 ✓ 08:07:40 root@yyds,10.0.0.100:<sub> # touch /opt/file1..10.txt
0 ✓ 08:07:53 root@yyds,10.0.0.100:</sub> # find /opt/ -size -1k|xargs mv -t /tmp/
0 ✓ 08:08:11 root@yyds,10.0.0.100:<sub> # ll /tmp/
total 0
-rw-r--r--. 1 root root 0 Apr 14 08:07 file10.txt
-rw-r--r--. 1 root root 0 Apr 14 08:07 file1.txt
-rw-r--r--. 1 root root 0 Apr 14 08:07 file2.txt
-rw-r--r--. 1 root root 0 Apr 14 08:07 file3.txt
-rw-r--r--. 1 root root 0 Apr 14 08:07 file4.txt
-rw-r--r--. 1 root root 0 Apr 14 08:07 file5.txt
-rw-r--r--. 1 root root 0 Apr 14 08:07 file6.txt
-rw-r--r--. 1 root root 0 Apr 14 08:07 file7.txt
-rw-r--r--. 1 root root 0 Apr 14 08:07 file8.txt
-rw-r--r--. 1 root root 0 Apr 14 08:07 file9.txt
xargs:
-i: 指定数据流的位置,将数据流放入中
0 ✓ 08:21:19 root@yyds,10.0.0.100:</sub> # find /opt/ -size -1k|xargs -i cp /tmp/
0 ✓ 08:21:45 root@yyds,10.0.0.100:~ # ll /tmp
total 0
-rw-r--r--. 1 root root 0 Apr 14 08:21 file10.txt
-rw-r--r--. 1 root root 0 Apr 14 08:21 file1.txt
-rw-r--r--. 1 root root 0 Apr 14 08:21 file2.txt
..................................................
三、按文件名查找
-name :严格区分大小写
#查找根下文件名含有‘zls’的文件,不含大写“ZLS”
0 ✓ 08:30:20 root@yyds,10.0.0.100:<sub> # find / -name *zls*
/root/hdflshkld_zls
/root/djzlszz.txt
/root/zls
/var/spool/mail/zls
/home/zls
/skzlsdd.txt
/zoo/spzls
/zoo/zlssp
#查找文件名仅有‘zls’的文件
0 ✓ 08:29:55 root@yyds,10.0.0.100:</sub> # find / -name zls
/root/zls
/var/spool/mail/zls
/home/zls
#查找以‘zls’开头的文件
0 ✓ 08:37:14 root@yyds,10.0.0.100:<sub> # find / -name zls*
/root/zls
/var/spool/mail/zls
/home/zls
/zoo/zlssp
#查找以‘zls’结尾的文件
0 ✓ 08:33:57 root@yyds,10.0.0.100:</sub> # find / -name *zls
/root/hdflshkld_zls
/root/zls
/var/spool/mail/zls
/home/zls
/zoo/spzls
#-iname 不区分大小写
0 ✓ 08:46:40 root@yyds,10.0.0.100:~ # find / -iname zls*
/root/ZLS
/root/zls
/root/ZLS.txt
/var/spool/mail/zls
/home/zls
/zoo/zlssp
四、按文件时间查找
-atime 文件访问时间查找
-mtime 文件内容创建,修改时间查找
-ctime 文件属性,修改时间查找
Num:查找第N天的文件(不包括今天)
1 ✗ 21:01:53 root@yyds,10.0.0.100:<sub> # find / -mtime 7 -ls
find: ‘/proc/1404/task/1404/fd/6’: No such file or directory
find: ‘/proc/1404/task/1404/fdinfo/6’: No such file or directory
find: ‘/proc/1404/fd/5’: No such file or directory
find: ‘/proc/1404/fdinfo/5’: No such file or directory
6515 0 -rw-rw---- 1 jinjin mail 0 Apr 7 03:03 /var/spool/mail/jinjin
6522 0 -rw-rw---- 1 apple mail 0 Apr 7 03:31 /var/spool/mail/apple
51460593 0 drwx------ 2 jinjin jinjin 62 Apr 7 03:03 /home/jinjin
6516 0 drwx------ 2 apple apple 99 Apr 7 09:12 /home/apple
6524 4 -rw-r--r-- 1 apple apple 241 Apr 7 03:58 /home/apple/.bashrc
6525 4 -rw-r--r-- 1 apple apple 208 Apr 7 03:59 /home/apple/.bash_profile
6521 4 -rw------- 1 apple apple 1839 Apr 7 04:04 /home/apple/.viminfo
6520 4 -rw------- 1 apple apple 246 Apr 7 09:12 /home/apple/.bash_history
+Num: 查找第N天之前的所有的文件(不包括今天)
-Num:查找从今天开始算,7天内的文件
# 一个文件有以下三种时间
access time:atime
modify time:mtime
change time:ctime
#查看这三种时间
0 ✓ 08:46:52 root@yyds,10.0.0.100:</sub> # stat ZLS.txt
File: ‘ZLS.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 33838911 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-04-14 08:46:40.957222895 -0400
Modify: 2022-04-14 08:46:40.957222895 -0400
Change: 2022-04-14 08:46:40.957222895 -0400
#保留近七天的文件
for i in `seq -w 30`;do date -s 202204$i && touch file-$i;done
0 ✓ 00:18:41 root@yyds,10.0.0.100:<sub> # find /opt ! -mtime -7|xargs rm -f
0 ✓ 每天一个linux命令(19):find 命令概览