• find


    find详解

    1.name: 指定文件名
    例子1. 找到以ken结尾的文件
    [root@ken ~]# find / -name “*ken”
    /sys/firmware/dmi/entries/15-0/system_event_log/change_token
    /etc/yum.repos.d/ken
    /var/spool/mail/ken
    /home/ken

    例子2:找到包含ken的文件
    [root@ken ~]# find / -name “*ken*” | head -3
    /sys/bus/hid/drivers/kensington
    /sys/devices/pci0000:00/0000:00:00.0/broken_parity_status
    /sys/devices/pci0000:00/0000:00:01.0/broken_parity_status

    2. perm:指定文件权限
    例子1:找到所有644权限的文件
    [root@ken ~]# find / -perm 644 | head -3
    /boot/grub2/device.map
    /boot/grub2/i386-pc/gcry_rmd160.mod
    /boot/grub2/i386-pc/acpi.mod
    [root@ken ~]# ls -l /boot/grub2/device.map
    -rw-r–r–. 1 root root 64 Feb 26 22:25 /boot/grub2/device.map

    例子2:模糊匹配644权限
    [root@ken ~]# find / -perm -644 | head -3
    /boot/efi
    /boot/efi/EFI
    /boot/efi/EFI/centos
    [root@ken ~]# ls -l /boot/efi
    total 0
    drwxr-xr-x. 3 root root 20 Feb 26 22:21 EFI

    3. user:指定属主
    例子1:找到属主是ken的文件
    [root@ken ~]# find /etc -user ken
    [root@ken ~]# find / -user ken
    find: ‘/proc/1672/task/1672/fd/6’: No such file or directory
    find: ‘/proc/1672/task/1672/fdinfo/6’: No such file or directory
    find: ‘/proc/1672/fd/5’: No such file or directory
    find: ‘/proc/1672/fdinfo/5’: No such file or directory
    /var/spool/mail/ken
    [root@ken ~]# ls -l /var/spool/mail/ken
    -rw-rw—- 1 ken mail 0 Mar 11 18:16 /var/spool/mail/ken

    4.group:指定属组
    例子1:
    [root@ken ~]# ls -l /var/spool/mail/ken
    -rw-rw—- 1 ken mail 0 Mar 11 18:16 /var/spool/mail/ken
    [root@ken ~]# find / -group ken
    find: ‘/proc/1709/task/1709/fd/6’: No such file or directory
    find: ‘/proc/1709/task/1709/fdinfo/6’: No such file or directory
    find: ‘/proc/1709/fd/5’: No such file or directory
    find: ‘/proc/1709/fdinfo/5’: No such file or directory
    /home/ken
    /home/ken/.bash_logout
    /home/ken/.bash_profile
    /home/ken/.bashrc
    /home/ken/.bash_history
    [root@ken ~]# ls -l /home/ken -d
    drwx—— 2 ken ken 83 Mar 11 18:16 /home/ken

    5. nouser:指定无属主
    例子1:
    [root@ken ~]# useradd kenken
    [root@ken ~]# touch test
    [root@ken ~]# chown kenken: test
    [root@ken ~]# userdel kenken
    [root@ken ~]# find / -nouser
    find: ‘/proc/1811/task/1811/fd/6’: No such file or directory
    find: ‘/proc/1811/task/1811/fdinfo/6’: No such file or directory
    find: ‘/proc/1811/fd/5’: No such file or directory
    find: ‘/proc/1811/fdinfo/5’: No such file or directory
    /root/test
    /var/spool/mail/kenken
    /home/kenken
    /home/kenken/.bash_logout
    /home/kenken/.bash_profile

    6. nogroup:指定无属主
    [root@ken ~]# find / -nogroup
    find: ‘/proc/1848/task/1848/fd/6’: No such file or directory
    find: ‘/proc/1848/task/1848/fdinfo/6’: No such file or directory
    find: ‘/proc/1848/fd/5’: No such file or directory
    find: ‘/proc/1848/fdinfo/5’: No such file or directory
    /root/test
    /home/kenken
    /home/kenken/.bash_logout
    /home/kenken/.bash_profile
    /home/kenken/.bashrc

    7.type:指定文件类型
    例子1:找到所有的链接文件
    [root@ken ~]# find / -type l | head -3
    /dev/cdrom
    /dev/snd/by-path/pci-0000:02:02.0
    /dev/initctl
    [root@ken ~]# ls -l /dev/cdrom
    lrwxrwxrwx 1 root root 3 May 24 19:19 /dev/cdrom -> sr0
    [root@ken ~]#

    例子2: 找到所有普通文件
    [root@ken ~]# find / -type f | head -3
    /boot/grub2/device.map
    /boot/grub2/i386-pc/gcry_rmd160.mod
    /boot/grub2/i386-pc/acpi.mod
    [root@ken ~]# ls -l /boot/grub2/device.map
    -rw-r–r–. 1 root root 64 Feb 26 22:25 /boot/grub2/device.map
    [root@ken ~]#

    8. size:指定文件大小
    例子1:找到大于100M的文件
    [root@ken ~]# find / -size +100M
    /proc/kcore
    find: ‘/proc/2018/task/2018/fd/6’: No such file or directory
    find: ‘/proc/2018/task/2018/fdinfo/6’: No such file or directory
    find: ‘/proc/2018/fd/5’: No such file or directory
    find: ‘/proc/2018/fdinfo/5’: No such file or directory
    /sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
    /sys/devices/pci0000:00/0000:00:0f.0/resource1
    /root/gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm
    ^C
    [root@ken ~]# ls -lh /root/gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm
    -rw-r–r– 1 root root 265M Nov 13 2018 /root/gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm

    9. mtime: 指文件修改时间,权限,属主,属组
    例子1:找到文件修改时间一天以上的
    [root@ken ~]# find / -mtime +1 | head -3
    /boot
    /boot/efi
    /boot/efi/EFI
    [root@ken ~]# stat /boot
    File: ‘/boot’
    Size: 4096 Blocks: 8 IO Block: 4096 directory
    Device: 801h/2049d Inode: 64 Links: 5
    Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
    Access: 2019-05-24 19:31:37.453000000 +0800
    Modify: 2019-02-26 22:25:57.574000000 +0800
    Change: 2019-03-14 18:49:48.066000000 +0800
    Birth: –

    10. atime:指定文件访问时间
    [root@ken ~]# find / -atime +1 | head -3
    /boot/grub2/device.map
    /boot/grub2/i386-pc/gcry_rmd160.mod
    /boot/grub2/i386-pc/acpi.mod
    ^C
    [root@ken ~]# stat /boot/grub2/device.map
    File: ‘/boot/grub2/device.map’
    Size: 64 Blocks: 8 IO Block: 4096 regular file
    Device: 801h/2049d Inode: 1572929 Links: 1
    Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
    Access: 2019-02-26 22:25:05.730000000 +0800
    Modify: 2019-02-26 22:25:05.582000000 +0800
    Change: 2019-02-26 22:25:05.582000000 +0800
    Birth: –

    11.ctime:指定文件内容
    例子1:指定文件内容修改一天以上
    [root@ken ~]# find / -ctime +1 | head -3
    /boot
    /boot/efi
    /boot/efi/EFI
    ^C^
    [root@ken ~]# stat /boot
    File: ‘/boot’
    Size: 4096 Blocks: 8 IO Block: 4096 directory
    Device: 801h/2049d Inode: 64 Links: 5
    Access: (0555/dr-xr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
    Access: 2019-05-24 19:31:37.453000000 +0800
    Modify: 2019-02-26 22:25:57.574000000 +0800
    Change: 2019-03-14 18:49:48.066000000 +0800
    Birth: –

    12. exec: 执行命令
    例子1:删除无属主的文件
    [root@ken ~]# find / -nouser
    find: ‘/proc/2395/task/2395/fd/6’: No such file or directory
    find: ‘/proc/2395/task/2395/fdinfo/6’: No such file or directory
    find: ‘/proc/2395/fd/5’: No such file or directory
    find: ‘/proc/2395/fdinfo/5’: No such file or directory
    /root/test
    /var/spool/mail/kenken
    /home/kenken
    /home/kenken/.bash_logout
    /home/kenken/.bash_profile
    /home/kenken/.bashrc
    [root@ken ~]# find / -nouser -exec rm -rf {} ;
    find: missing argument to `-exec’
    [root@ken ~]# find / -nouser -exec rm -rf {} ;
    find: ‘/proc/2451/task/2451/fd/6’: No such file or directory
    find: ‘/proc/2451/task/2451/fdinfo/6’: No such file or directory
    find: ‘/proc/2451/fd/5’: No such file or directory
    find: ‘/proc/2451/fdinfo/5’: No such file or directory
    find: ‘/home/kenken’: No such file or directory
    [root@ken ~]# find / -nouser
    find: ‘/proc/2463/task/2463/fd/6’: No such file or directory
    find: ‘/proc/2463/task/2463/fdinfo/6’: No such file or directory
    find: ‘/proc/2463/fd/5’: No such file or directory
    find: ‘/proc/2463/fdinfo/5’: No such file or directory

    例子2:xargs
    [root@ken ~]# touch {1..100}.txt
    [root@ken ~]# powd
    -bash: powd: command not found
    [root@ken ~]# pwd
    /root
    [root@ken ~]# ls
    100.txt 19.txt 28.txt 37.txt 46.txt 55.txt 64.txt 73.txt 82.txt 91.txt anaconda-ks.cfg
    10.txt 1.txt 29.txt 38.txt 47.txt 56.txt 65.txt 74.txt 83.txt 92.txt a.out
    11.txt 20.txt 2.txt 39.txt 48.txt 57.txt 66.txt 75.txt 84.txt 93.txt gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm
    12.txt 21.txt 30.txt 3.txt 49.txt 58.txt 67.txt 76.txt 85.txt 94.txt ken1
    13.txt 22.txt 31.txt 40.txt 4.txt 59.txt 68.txt 77.txt 86.txt 95.txt
    14.txt 23.txt 32.txt 41.txt 50.txt 5.txt 69.txt 78.txt 87.txt 96.txt
    15.txt 24.txt 33.txt 42.txt 51.txt 60.txt 6.txt 79.txt 88.txt 97.txt
    16.txt 25.txt 34.txt 43.txt 52.txt 61.txt 70.txt 7.txt 89.txt 98.txt
    17.txt 26.txt 35.txt 44.txt 53.txt 62.txt 71.txt 80.txt 8.txt 99.txt
    18.txt 27.txt 36.txt 45.txt 54.txt 63.txt 72.txt 81.txt 90.txt 9.txt
    [root@ken ~]# find /root -name “*txt” | xargs rm -rf
    [root@ken ~]# ls
    anaconda-ks.cfg a.out gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm ken1

    13.find可以使用-a和-o或!
    例子1:找到所有事普通文件并且权限是777
    [root@ken ~]# find / -type f -a -perm 644 | head -3
    /boot/grub2/device.map
    /boot/grub2/i386-pc/gcry_rmd160.mod
    /boot/grub2/i386-pc/acpi.mod
    [root@ken ~]# ls -l /boot/grub2/device.map
    -rw-r–r–. 1 root root 64 Feb 26 22:25 /boot/grub2/device.map

  • 相关阅读:
    Iframe 自适应高度并实时监控高度变化的js代码
    asp.net下载文件几种方式
    C# 使用ffmpeg视频截图
    C# 读取Excel和DBF文件
    C# 多线程下载
    C# http get与post请求方法
    socket实例
    C# 汉字转为拼音
    读取Excel中数据
    【BZOJ2238】Mst 最小生成树+LCA+堆
  • 原文地址:https://www.cnblogs.com/it-peng/p/11399501.html
Copyright © 2020-2023  润新知