#!/bin/bash
# 列出当前目录和子目录的文件.
find ./
# 查找当前目录和子目录下*.sh文件.
find ./ -name "*.sh" -print
# 查找当前目录和子目录下*.sh文件.并忽略大小写.
find ./ -iname "*.sh" -print
# 匹配多个条件.
find ./ \( -name "*.sh" -o -name "*.txt" \) -print
# 正则匹配多个条件
find ./ -regex ".*\(\.txt\|\.sh\)$"
# 忽略大小写
find ./ -iregex ".*\(\.txt\|\.sh\)$"
# -path用来匹配目录和文件名.
find ./ -path "*sh"
# -maxdepth目录深度.
find ./ -maxdepth 2 \( -name "*.sh" -o -name "*.txt" \) -print
# 打印深度为2的文件
find ./ -maxdepth 2 -type f
# 打印深度为2的目录
find ./ -maxdepth 2 -type d
# 列出当前目录所有软件链接.
find ./ -type l
# -atime 最后一次访问时间
# -mtime 最后一次修改时间
# -ctime 最后一次改变的时间
# 这里和上面一样。只是以分钟计数.
# -amain
# -mmain
# -cmain
# 2天内被修改的文件.
find ./ -type f -mtime -2
# 查询当前目录文件超过1kb的文件.
# b 块
# c 字节
# w 字
# K kb
# M mb
# G gb
find ./ -type f -size +1k
# -delete 查询并删除
find ./ -type f -size +1k -delete
# 查询权限为644的文件
find ./ -type f -perm 644 -print
# 查询所有PHP文件中权限为644的文件
find ./ -type f -name "*.php" ! -perm 644 -print
find ./ -type f -name "*.php" -perm 644 -exec chmod +x {} \;
# 找出文件并执行chmod +增加读权限.
find ./ -type f -name "*.sh" -perm 644 -exec chmod +x {} \;
# 将查找的结果打印到allf.txt文件
find ./ -type f -name "*.sh" -perm 644 -exec cat {} \; > allf.txt
# 转换文件权限为数字
find ./ -printf '%m %p\n'
# 查找排除.git和node_module目录
find ./ -type l -name "*.php" \( -name ".git" -prune \) -o \( -name "node_module" -prune \)