Linux之Find命令详解
Linux中find命令用法全汇总,看完就没有不会用的!
find命令
【日常小记】linux中强大且常用命令:find、grep
每天一个linux命令(22):find 命令的参数详解
在Linux系统中, 为找到文件try_grep含有以a字母
find ~ -name '*jpg' # 查找"~"目录下所有匹配"*jpg"的文件及目录,区分大小写
find ~ -iname '*jpg' # 查找"~"目录下所有匹配"*jpg"的文件及目录,不区分大小写
find / -name passwd # 查找 / 目录下名称为 passwd 的文件
find / -name "*passwd*" # 查找 / 目录下名称含 passwd 字符串的文件,* 做通配符
find / -perm /7000 # 查找 / 目录下文件权限包含 7000 中任一权限的文件
find /run -type s # 查找 /run 目录下类型为 s 的文件
find . -perm /222 : 查找至少有一个类用户有写权限
find . -perm /666 : 查找至少有一个类用户有读写权限
find . -perm /001 :查找其他用户有执行权限
find . -perm -222 : 查找三类用户都有写权限
find . -not -perm -222 :至少有一类用户没有写权限
find / -mtime 0
# 查找"~"目录下修改时间在最近7天以内、匹配"*jpeg"或"*jpg"的文件和目录,不区分大小写
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7
# 查找"~"目录下所有匹配"*jpeg"或"*jpg"的文件,不区分大小写,其中括号需转义
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f
# 查找"~"目录下所有匹配"*jpeg"或"*jpg"的目录,不区分大小写,其中括号需转义
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type d
默认组合逻辑,可以加-a,也可以取消,例:find . -type f -a -user mariadb,两个条件同时满足
# 查找"~"目录下所有匹配"jpeg"或"jpg"的文件及目录,不区分大小写,其中括号需使用"\"转义
find ~ \( -iname 'jpeg' -o -iname 'jpg' \)
find . -not -type f,不是普通文件
find . ! -type f ,同上
注意:find将查找到的文件路径一次性传递给后面的命令,但有很多的命令不能接受过长的参数,导致命令的执行失败,使用如下方式可避免此错误的发生:
find /etc -type f | xargs -i COMMAND : -i 参数是由 find 的结果传给 xargs 命令后,由 -i 指定结果代替符
find /etc -type f | xargs -i cp {} /tmp # -i 指定代替符为{}
# 查找 /usr/bin, /usr/sbin/ 目录中、文件权限含 7000 中任一权限的文件,并使用 ls -l 命令罗列出来
find /usr/bin/ /usr/sbin/ -perm -7000 -exec ls -l {} \;
find -type f -name 'test.c' -exec rm -rf {} \; # 查找当前目录下名称为 test.c 的文件并删除
find -type f -name "*.txt" -exec rm -rf {} \; # 查找当前目录下后缀为 txt 的文件并删除
find / # 查询 / 目录下的所有文件
# 查找"~"目录下修改时间为最近7天内、匹配"*jpeg"或"*jpg"的文件,并将其复制到 ~/Pictures 目录
sudo find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7 -print0 | xargs -0 cp -t ~/Pictures/
find . -type d -name '*2022*' -exec rm -rf {} \;
find /tmp -not -user root -a -name *fstab*
find /tmp -not -name *fstab*
find /tmp -not -user root -a -not -name *fstab*
find /tmp -not \(-user root -o -name *fstab*\)