• Linux 中 find 命令的 30 个实际例子


    Linux 中 find 命令的 35 个实际例子

    1. 在当前目录中使用名称查找文件

    # find . -name 'aa.txt'
    ./aa.txt
    
    • 1
    • 2

    2. 指定搜索目录层级

    -maxdepth level 最大搜索目录深度,指定目录下的文件为第1级

    -mindepth level 最小搜索目录深度

    [root@redhat7 ~]# ll /usr/local/src/test.tar.bz2 
    -rw-r--r--. 1 root root 2633413 713 2021 /usr/local/src/test.tar.bz2
    [root@redhat7 ~]# find / -maxdepth 3 -name test.tar.bz2  #目录层级不够,无法查找到
    [root@redhat7 ~]# find / -maxdepth 4 -name test.tar.bz2
    /usr/local/src/test.tar.bz2
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3. 使用名称和忽略大小写查找文件

    # find . -iname AA.Txt
    ./aa.txt
    
    • 1
    • 2

    4. 使用名称查找目录

    # find / -type d -name 'src'
    /usr/lib/firmware/cis/src
    /usr/lib64/golang/src
    /usr/local/src
    /usr/src
    /usr/src/kernels/3.10.0-514.el7.x86_64/drivers/staging/usbip/userspace/src
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5. 使用名称查找 PHP 文件

    # find / -type f -name '*.php'
    /usr/lib/rpm/macros.php
    /usr/share/doc/git-1.8.3.1/contrib/mw-to-git/t/install-wiki/LocalSettings.php
    /usr/share/doc/git-1.8.3.1/contrib/mw-to-git/t/install-wiki/db_install.php
    
    • 1
    • 2
    • 3
    • 4

    6. 查找具有 777 权限的文件

    # find . -type f -perm 777 
    ./aa.txt
    [root@redhat7 ~]# find . -type f -perm 777 -print
    ./aa.txt
    
    • 1
    • 2
    • 3
    • 4

    7. 查找没有 777 权限的文件

    # find . -type f ! -perm 777 -exec ls -l {} \;
    -rw-r--r--. 1 root root 176 1229 2013 ./.bash_profile
    -rw-r--r--. 1 root root 176 1229 2013 ./.bashrc
    -rw-r--r--. 1 root root 100 1229 2013 ./.cshrc
    -rw-r--r--. 1 root root 129 1229 2013 ./.tcshrc
    .......................................................
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    8. 查找具有 644 权限的 SGID 文件

    # find / -perm 2644
    
    • 1

    9. 查找具有 551 权限的粘滞位文件

    find / -perm 551
    
    • 1

    10. 查找 SUID 文件

    # find / -perm /u=s
    
    • 1

    11. 查找 SGID 文件

    # find / -perm /g=s
    
    • 1

    12. 查找只读文件

    # find / -perm /u=r
    
    • 1

    13. 查找权限为 777 且 chmod 为 644 的文件

    # find . -type f -perm 777 
    ./aa.txt
    [root@redhat7 ~]# find . -type f -perm 777 -exec chmod 644 {} \;
    
    [root@redhat7 ~]# find . -type f -perm 777 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    14. 查找和删除单个文件

    查找名为的单个文件aa.txt并将其删除

    # find . -type f -name "aa.txt" -exec rm -f {} \;
    
    • 1

    15. 查找所有空文件

    # find /tmp -type f -empty
    
    • 1

    16. 查找所有空目录

    # find /tmp -type d -empty
    /tmp/.font-unix
    /tmp/.Test-unix
    /tmp/.ICE-unix
    /tmp/.XIM-unix
    /tmp/.X11-unix
    /tmp/systemd-private-6cf267a3611343fc895c582b48969f38-vmtoolsd.service-fRhAsf/tmp/vmware-root
    /tmp/systemd-private-6cf267a3611343fc895c582b48969f38-httpd.service-pQNDVx/tmp
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    17. 归档所有隐藏文件

    要查找所有隐藏文件,请使用以下命令。

    # find /tmp -type f -name ".*"
    
    • 1

    18. 根据用户查找单个文件

    查找所有或单个文件aa.sh在下面/所有者 song 的根目录。

    # ll aa.sh 
    -rw-r--r--. 1 song song 429 728 2021 aa.sh
    # find / -user song -name aa.sh
    /root/aa.sh
    
    • 1
    • 2
    • 3
    • 4

    19. 根据组查找所有文件

    查找属于该组的所有文件song在下面/home目录。

    # find /home -group song
    /home/song
    /home/song/.bash_logout
    /home/song/.bash_profile
    /home/song/.bashrc
    /home/song/.bash_history
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    20. 查找用户的特定文件

    查找所有.txt用户文件song在下面/home目录。

    # find /home -user song -iname "*.txt"
    
    • 1

    21. 查找最近 50 天修改过的文件

    查找所有被修改的文件50几天

    # find / -mtime 50
    
    • 1

    22. 查找最近 50 天访问过的文件

    find / -atime 50
    
    • 1

    23. 查找最近 50-100 天修改过的文件

    # find / -mtime +50 –mtime -100
    
    • 1

    24. 查找过去 1 小时内更改过的文件

    # find / -cmin -60
    
    • 1

    25. 查找最近 1 小时内修改过的文件

    # find / -mmin -60
    
    • 1

    26. 查找过去 1 小时内访问过的文件

    # find / -amin -60
    
    • 1

    27. 找到 50MB 的文件

    # find / -size 50M
    
    • 1

    28. 查找 50MB – 100MB 之间的大小

    查找所有大于50MB并且小于100MB

    # find / -size +50M -size -100M
    
    • 1

    29. 查找和删除 100MB 文件

    查找所有100MB文件并使用一个命令删除它们。

    # find / -type f -size +100M -exec rm -f {} \;
    
    • 1

    30. 查找特定文件并删除

    找到所有.mp3文件超过10MB并使用一个命令删除它们。

    # find / -type f -name *.mp3 -size +10M -exec rm {} \;
    
    • 1
  • 相关阅读:
    FreeRTOS——删除任务
    在flutter中添加video_player【视频播放插件】
    【sklearn | 3】时间序列分析与自然语言处理
    调整C / C ++编译器以在多核应用程序中获得最佳并行性能:第二部分
    Python 验证 IP 地址
    cdn加速华为云obs桶文件配置过程(详细)
    基于监督学习的多模态MRI脑肿瘤分割,使用来自超体素的纹理特征(Matlab代码实现)
    关于俄罗斯游戏玩家特征的几个事实
    xrandr修改分辨率与刷新率
    vue实战-分页器
  • 原文地址:https://blog.csdn.net/swyer_66/article/details/125562929