Find命令的35个举例
find命令是Linux系统中最重要的和使用的最多的命令之一,find命令可以根据用户提供的条件用来匹配对象,从而查找和定位文件和目录.Find命令可以按照多种条件进行查询,比如权限,用户,组,文件类型,日期,文件大小和其它可能的标准.
我们通过这篇文章以举例的形式给大家分享日常使用find命令的经验和用法.我将向大家演示35个find命令的举例.按照从基础到高级的顺序把这个文章分成了五个部分.
1. PartI: 根据文件名查找文件和目录
2. PartII: 根据权限查找文件和目录
3. PartIII: 根据文件所有者和所有组查找文件和目录
4. PartIV: 根据日期和时间查找文件和目录
5. PartV: 根据文件大小查找文件和目录
6. PartVI: 在Linux中查找多个文件
Part I–根据文件名查找文件和目录
1.在当前工作目录中查找名为cslinux.txt的文件.这里要说明一点的是find命令后面接的路径名是递归查找,即在所确定的目录和子目录下递归查找,以下所有类同.
# find . -name cslinux.txt
./cslinux.txt
2. 查找家目录下所有文件名为cslinux.txt的文件
# find /~ -name cslinux.txt
/home/cslinux.txt
3. 在家目录下查找文件名cslinux.txt,忽略大小写.
# find /~ -iname cslinux.txt
./Cslinux.txt
./CSlinux.txt
./cslinux.txt
4. 查找根目录下的所有名为cslinux的目录
# find / -type d -name cslinux
/cslinux
5. 在当前工作目录下查找所有名字为cslinux.php的文件.
# find . -type f -name cslinux.php
./cslinux.php
6.在当前目录中查找所有的php文件.
# find . -type f -name"*.php"
./cslinux.php
./index.php
./login.php
PartII –根据权限查找文件和目录
7. 在当前目录下查找所有权限为777的文件.
# find . -type f -perm 0777-print
8. 在当前目录下查找所有权限不是777的文件.
# find / -type f ! -perm 777
9. 在根目录下查所有具有644权限且SGID置位的文件.
# find / -perm 2644
10. 在根目录下查找 Sticky 置位并且具有551权限的文件
# find / -perm 1551
11. 在根目录下查找所有SUID置位的文件.
# find / -perm /u=s
12. 在根目录下查找所有SGID置位的文件.
# find / -perm /g=s
13. 在根目录下查找所有文件所有者有读取权限的文件.
# find / -perm /u=r
14. 查找任何用户都有执行权限的文件.
# find / -perm /a=x
15. 查找所有权限是777的文件并把权限改成644.
# find / -type f -perm 0777-print -exec chmod 644 {} \;
16. 查找所有权限是777的目录并把权限改成755.
# find / -type d -perm 777-print -exec chmod 755 {} \;
17. 查找并删除单个文件
查找文件名为cslinux.txt的文件,并删除掉.
# find . -type f -name "cslinux.txt"-exec rm -f {} \;
18. 查找并删除多个文件
查找并删除文件名最后四位是.txt的文件并删除.
# find . -type f -name"*.txt" -exec rm -f {} \;
查找并删除文件名最后四位是.mp3的文件并删除.
# find . -type f -name"*.mp3" -exec rm -f {} \;
19. 查找空文件
在/tmp目录下查找空文件..
# find /tmp -type f -empty
20.查找/tmp目录下的空目录.
# find /tmp -type d -empty
21.在/tmp目录下查找隐藏文件.
# find /tmp -type f -name".*"
PartIII 根据文件所有者和所有组查找文件和目录
22. 根据用户查找单个文件
以根目录为起点查找所有文件名是cslinux.txt的并且文件宿主是root的文件.
# find / -user root -name cslinux.txt
23.在/home目录下查找所有的文件拥有者是cslinux的文件.
# find /home -user cslinux
24. 根据用户组查找文件
在/home目录下查找所有属于developer组的文件.
# find /home -group developer
25. 查找用户的特殊文件
在/home目录下查找属于用户cslinux的所有扩展名是.txt的文件,不区别大小写 .
# find /home –user cslinux -iname"*.txt"
PartIV 根据日期和时间查找文件和目录
26. 查找最近50天曾经修改过的文件
# find / -mtime 50
27. 查找最近50天被访问过的文件..
# find / -atime 50
28. 查找50天之前到100天之内被修改的文件.
# find / -mtime +50 –mtime -100
29. 查找最近一小时被改变过的文件,这里改变是指修改宿主权限之类的..
# find / -cmin -60
30. 查找最近一小时被修改过的文件,这里是修改是指文件内容被修改.
# find / -mmin -60
31. 查找最近一小时被访问过的文件.
# find / -amin -60
Part V–根据大小查找文件和目录
32. 查找文件大小为50M的文件.
# find / -size 50M
33. 查找文件尺寸大小50M,小于100M的文件.
# find / -size +50M -size -100M
34.查找并删除尺寸大小大于100M的文件.
# find / -size +100M -exec rm-rf {} \;
35.找到特殊条件的文件并删除,查找文件大小尺寸大于10M的mp3文件并删除它
# find / -type f -name *.mp3-size +10M -exec rm {} \;