linux命令 之 find

2019-11-05  本文已影响0人  提摩太_e9ec

忘记目录或文件的位置,用find就能轻松找到

find


  1. 按名称搜索
find ./ -name "a"    # 递归查找当前目录下名字为“a”的目录或文件(区分大小写)
find ./ -iname "a"    # 递归查找当前目录下名字为“a”的目录或文件(不区分大小写)
find ./ -name "*a*"    # 递归查找当前目录下名字包含字母“a”的目录或文件
  1. 按路径搜索
find ./ -path "*/src/*/a"    # 递归查找src目录下名字为“a”的目录或文件(区分大小写)
find ./ -ipath "*/src/*/a"    # 递归查找src目录下名字为“a”的目录或文件(不区分大小写)
  1. 按类型搜索
find ./ -type f    # 递归查找当前目录下所有文件
find ./ -type d    # 递归查找当前目录下所有目录
find ./ -type l    # 递归查找当前目录下所有链接
  1. 搜索空目录和文件
find ./ -empty    # 递归查找当前目录下所有空目录和文件
  1. 非搜索
find ./ -type f ! -name "*.txt"    # 递归查找当前目录下所有不以“.txt”结尾的文件
find ./ -type f ! -empty    # 递归查找当前目录下所有非空文件
  1. 根据日期时间搜索文件
find ./ -mtime +1    # 搜索1天前修改的文件
find ./ -mtime -1    # 搜索1天内修改的文件
find ./ -mtime +50 -mtime -100    # 搜索50-100天范围内修改的文件
find ./ -mmin -1    # 搜索1分钟内修改的文件
  1. 根据文件大小搜索
find ./ -size +1G    # 搜索大于1G的文件
find ./ -size -500M    # 搜索小于500M的文件
  1. 逻辑运算
find ./ '(' -mmin -5 -o -mtime +50 ')' -a -type f
  1. 按文件权限搜索
find ./ -perm u=rwx,g=rx,o=rx
find ./ -type f -perm /a=x    # / 符号表示只匹配权限的某个子集
find ./ -perm 644
  1. 指定递归层数
find ./ -maxdepth 2    # 搜索时向下递归的层数最大为 2
  1. 对搜索结果执行命令
find ./ -type d -empty -delete    # 删除检索出的内容
find ./ -type f -name '*.mp3' -exec cp {} /media/MyDrive ';'
find ./ -type f -exec grep -l hello {} ';'
find ./ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +    # 若不使用 + ,压缩包只有1个文件,因find找到1个符合条件的文件就执行压缩,原压缩包文件就会被覆盖;使用 + ,find找出所有符合条件的文件后再压缩
find ./ -type file -size +1G -ls

参考文章:https://www.jianshu.com/p/ea8cc2248022

上一篇 下一篇

猜你喜欢

热点阅读