admin05-find精确查找

find 按条件查找文件/目录所在位置

• 根据预设的条件递归查找对应的文件  可以查找子目录

– find  [目录]    [条件1]  [-a|-o]连接符  [条件2]……

-a 两者皆满足,也可以省略

-o 一般很少用

– 常用条件表示:

-type 类型(f 文本文件、d 目录、l 快捷方式)

-name  "文档名称"  支持通配符

-size +|-文件大小(k、M、G)  1k  1M  1G 不能识别

-user  用户名

-group  组名

-mtime  修改时间

请查找/etc目录下以.conf结尾的文本文件?(不包含子目录)

[root@localhost ~]# ls /etc/*.conf

请查找/etc目录下以.conf结尾的文本文件?(包含子目录)

[root@localhost ~]# find /etc/ -name "*.conf"

[root@localhost ~]# find /boot/  -type l  #查找快捷方式

[root@localhost ~]# find  /boot/  -type  f  #查找文件包括隐藏文件

[root@localhost ~]# find /boot/  -type d  #find查找目录

/boot/

/boot/efi

/boot/efi/EFI

/boot/efi/EFI/centos

/boot/grub2

/boot/grub2/i386-pc

/boot/grub2/locale

/boot/grub2/fonts

/boot/grub

[root@localhost ~]# find /boot/ -name "vm*"#  支持通配符

/boot/vmlinuz-3.10.0-693.el7.x86_64

/boot/vmlinuz-0-rescue-7e242ae6581648e9bf582a14fb14e442

[root@localhost ~]# find /etc/ -name "passwd"  #严格匹配

/etc/pam.d/passwd

/etc/passwd

[root@localhost ~]# mkdir /root/install

[root@localhost ~]# touch /root/install.log

[root@localhost ~]# touch /root/install.txt

[root@localhost ~]#  find  /root -name "install*"

/root/.cache/gnome-software/3.22/flatpak/installation-tmp

/root/install

/root/install.log

/root/install.txt

[root@localhost ~]# find  /root -name "install*" -a  -type d 

/root/.cache/gnome-software/3.22/flatpak/installation-tmp

/root/install

[root@localhost ~]# find  /root -name "install*"  -type f  #默认是连接-a  两者皆满足

/root/install.log

/root/install.txt

[root@localhost ~]# find /boot/ -size +10M  #

[root@localhost ~]# find /boot/ -size -10M

[root@localhost ~]#  find / -user student  #按照用户名查找

find: ‘/proc/44903/task/44903/fd/6’: 没有那个文件或目录

find: ‘/proc/44903/task/44903/fdinfo/6’: 没有那个文件或目录

find: ‘/proc/44903/fd/6’: 没有那个文件或目录

find: ‘/proc/44903/fdinfo/6’: 没有那个文件或目录

/var/spool/mail/student

^C

[root@localhost ~]#  find /home/ -group student #按照组名查找

/home/student

/home/student/.mozilla

/home/student/.mozilla/extensions

/home/student/.mozilla/plugins

/home/student/.bash_logout

/home/student/.bash_profile

/home/student/.bashrc

[root@localhost ~]# find /home/ -user student

/home/student

/home/student/.mozilla

/home/student/.mozilla/extensions

/home/student/.mozilla/plugins

/home/student/.bash_logout

/home/student/.bash_profile

/home/student/.bashrc

[root@localhost ~]# find /root/ -mtime +100  #按照时间来查找

[root@localhost ~]# find /root/ -mtime -10

[root@localhost ~]# find /var/log -mtime +90

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

[root@localhost ~]# wc /etc/passwd 

  41        79                   2101                /etc/passwd

行数      单词数         文件大小

[root@localhost ~]# wc -l /etc/passwd  #统计行数

41 /etc/passwd

[root@localhost ~]# find /etc/ -name "*tab"

/etc/fstab

/etc/crypttab

/etc/mtab

/etc/selinux/targeted/active/modules/100/updfstab

/etc/anacrontab

/etc/crontab

/etc/inittab

/etc/rwtab

/etc/statetab

[root@localhost ~]# find /etc/ -name "*tab" | wc -l  #统计tab结尾文件个数

9

处理find找到文件

根据条件查找并处理结果

-使用find命令的 --exec 额外操作

– find .. .. -exec 处理命令 {} \;    {}:替代每一个查找结果    \;:处理操作结束

优势:以{}代替前面find查询到的每一个结果,逐个处理,遇到 \; 结束

[root@localhost ~]# rm -rf /opt/*

[root@localhost ~]# ls /opt/

[root@localhost ~]# find /boot/ -name "vm*"  #查找以vm开头文件

/boot/vmlinuz-3.10.0-693.el7.x86_64

/boot/vmlinuz-0-rescue-7e242ae6581648e9bf582a14fb14e442

[root@localhost ~]# find /boot/ -name "vm*" -exec cp {} /opt \;  #将查找到vm开头文件,复制到opt目录下

[root@localhost ~]# ls /opt/

vmlinuz-0-rescue-7e242ae6581648e9bf582a14fb14e442

vmlinuz-3.10.0-693.el7.x86_64

[root@localhost ~]#  find /boot/ -size +10M

/boot/initramfs-0-rescue-7e242ae6581648e9bf582a14fb14e442.img

/boot/initramfs-3.10.0-693.el7.x86_64.img

[root@localhost ~]#  find /boot/ -size +10M  -exec  cp -r  {}  /opt/  \;

[root@localhost ~]# ls  /opt

initramfs-0-rescue-7e242ae6581648e9bf582a14fb14e442.img

initramfs-3.10.0-693.el7.x86_64.img

vmlinuz-0-rescue-7e242ae6581648e9bf582a14fb14e442

vmlinuz-3.10.0-693.el7.x86_64

[root@localhost ~]# find /etc/  -name "*tab"

/etc/fstab

/etc/crypttab

/etc/mtab

/etc/selinux/targeted/active/modules/100/updfstab

/etc/anacrontab

/etc/crontab

/etc/inittab

/etc/rwtab

/etc/statetab

[root@localhost ~]# find /etc/  -name "*tab"  -exec cp -r  {}  /mnt/  \;

[root@localhost ~]# ls /mnt/

anacrontab  crypttab  inittab  passwd  shadow    student  whj

crontab    fstab    mtab    rwtab  statetab  updfstab

[root@localhost ~]# mkdir /root/findfiles

[root@localhost ~]# find / -user student -type f -exec cp -r {} /root/findfiles/  \;

你可能感兴趣的:(admin05-find精确查找)