操作actions:
-delete:
-exec command: 执行多个命令,直到遇到带;的命令
-exec comand {} \; :
-execdir command:
-execdir comand {} \; :只执行查找的文件的当前目录
-fprint:
-prune:修剪,只显示文件所所指向的目录:
find的运算符:
(expr):
!:非
not:
expr1 expr2:并且
expr1 -a expr:并且
expr1 -and expr2:并且
expr1 -o expr2:或者
expr1 -or expr2:或者
三种标准格式:POSIX,GNU,BSD
环境变量:
LANG:
LC_ALL:
PATH:
POSIXLY_CORRECT: 设置了这个环境变量,那么 -perm +zzz这样的模式会出错
Determines the block size used by -ls and -fls. If POSIXLY_CORRECT is set, blocks are units of 512 bytes. Other‐
wise they are units of 1024 bytes.
When POSIXLY_CORRECT is not set, -perm +zzz is treated just like -perm /zzz if +zzz is not a valid symbolic mode.
When POSIXLY_CORRECT is set, such constructs are treated as an error.
常见使用例子:
找到文件名为core的文件,并删除:
find /tmp -name core -type f -print | xargs /bin/rm -f
如果文件或目录含有单引号、双引号、换行符,以下的find也能找到:
find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
找到当前目录下面的文件,并执行file命令:
find . -type f -exec file '{}' \;
或:find . -type f -exec file {} \;
遍历跟目录,查找setuid的文件和目录并保存到/root/suid.txt,查找大于100M的文件并保存到/root/big.txt,%#m=文件权限前面加特殊标记位,%u =UID,%p=文件名称,%s=文件大小:
find / \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) \
\( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)
查找家目录下面在最近24小时内修改的文件:
find $HOME -mtime 0
寻找sbin目录下面可执行但是不可读的文件,!是非的意思,使用转义字符\进行转义:
find /sbin /usr/sbin -executable \! -readable -print
精确匹配:
find . -perm 664
find . -perm -664 至少包含644权限
find . -perm /222 ugo的权限位只要满足一个条件即可
find . -perm /220
find . -perm /u+w,g+w
find . -perm /u=w,g=w
find . -perm -444 -perm /222 ! -perm /111
find . -perm -a+r -perm /a+w ! -perm /a+x
find repo/ -exec test -d {}/.svn \; -or \
-exec test -d {}/.git \; -or -exec test -d {}/CVS \; \
-print -prune
2015职称计算机考试书PowerPoint2007中 .. 定价:¥45 优惠价:¥42 更多书籍 | |
2015年全国职称计算机考试教材(2007模 .. 定价:¥225 优惠价:¥213 更多书籍 |