Linux 中的 Find(查找) 命令是在 Linux 系统中最重要并且更有用的命令之一. Find 命令主要用于指定匹配文件条件的参数查找或者定位文件和目录的列表. Find 命令能够被使用基于各种各样的条件, 例如 permissions(权限),users(用户),groups(组),file type(文件类型),date(日期),size(大小) 等等其它可能的条件.
在这篇文章我们主要分享常用的 35 个 Find 命令以及通过例子来讲解每一个的用法, 这里的 35 个例子我们分为 5 大块来讲解.
第一部分: 基本的 Find 命令查找通过名字
第二部分: 查找文件通过权限
第三部分: 查找文件通过拥有者以及组
第四部分: 查找文件通过日期和时间
第五部分: 查找文件通过文件的大小
第一部分: 通过文件名来查找文件
1, 查找文件在最近的工作目录通过文件名
查找最近工作目录下名为 test.txt 的所有文件.
- # find . -name test.txt
- ./tmp/test.txt
- ./test.txt
2, 通过文件名查找文件在 home 工作目录
查找 home 目录下名为 test.txt 的所有文件.
- # find /home/ -name test.txt
- /home/test.txt
3, 通过忽略文件名的大小写来查找文件在 home 工作目录
查找 home 工作目录下名为 test.txt 并且不分大小写的所有文件.
- # find /home -iname test.txt
- /home/test.txt
- /home/Test.txt
- /home/tesT.txt
4, 查找目录使用文件名
查找在根目录 / 下名为 test 的所有文件名.
- # find / -type d -name test
- /test
5, 使用 PHP 文件名后缀来查找对应格式文件
查找最近工作目录下名为 test.PHP 的所有文件.
# find . -type f -name tecmint.PHP
/test.PHP
6, 在最近工作目录查找所有 PHP 文件
查找最近工作目录下所有 PHP 后缀的文件.
# find . -type f -name "*.php"
./test.PHP
./login.PHP
./index.PHP
第二部分: 通过权限查找文件
7, 查找拥有 777 权限的所有文件
查找最近工作目录下有 777 权限的所有文件.
- # find . -type f -perm 0777 -print
- ./test.txt
8, 查找没有 777 权限的所有文件
查找根目录下没有 777 权限的所有文件.
# find / -type f ! -perm 777
9, 查找有 644 权限的 SGID 文件
查找根目录下有 644 权限的 SGID 字节文件.
# find / -perm 2644
10, 查找权限为 551 粘值位字节文件
查找根目录下权限为 551 粘值位字节文件.
# find / -perm 1551
11, 查找根目录下 SUID 集合文件
查找根目录下 SUID 集合文件.
# find / -perm /u=s
12, 查找根目录下 SGID 集合文件
查找根目录下 SGID 集合文件.
# find / -perm /g=s
13, 查找只读文件
查找根目录下所有只读文件.
# find / -perm /u=r
14, 查找可执行文件
查找根目录下所有可执行文件.
# find / -perm /a=x
15, 查找所有 777 权限的文件并设置权限为 644
查找根目录下权限为 777 的所有文件并通过 chmod 修改权限为 644.
# find / -type f -perm 0777 -print -exec chmod 644 {} \;
16, 查找所有 777 权限的目录并设置权限为 755
查找根目录下权限为 777 的所有目录并通过 chmod 修改权限为 755.
# find / -type d -perm 777 -print -exec chmod 755 {} \;
/test.PHP
17, 查到并删除单个对应的文件
查找最近工作目录下名为 test.PHP 文件并删除.
# find . -type f -name "test.php" -exec rm -f {} \;
18, 查找对应格式的多个文件并删除
查找最近工作目录下后缀为. mp3 或者. txt 的所有文件并删除.
- # find . -type f -name "*.txt" -exec rm -f {
- } \;
- OR
- # find . -type f -name "*.mp3" -exec rm -f {
- } \;
19, 查找 / tmp 目录下的所有空文件
查找 / tmp 目录下的所有空文件.
# find /tmp -type f -empty
/test.PHP
20, 查找 / tmp 目录下的所有空目录
查找 / tmp 目录下的所有空目录.
# find /tmp -type d -empty
21, 查找 / tmp 目录下的所有隐藏文件
查找 / tmp 目录下的所有隐藏文件
# find /tmp -type f -name ".*"
第三部分: 通过用户拥有着以及拥有组查找文件
22, 通过拥有者查找单个文件
查找根目录下名为 test.txt 的文件并且拥有着为 user.
# find / -user root -name test.txt
23, 在 home 目录下查找对应拥有者的所有文件
在 home 目录下查找对应拥有者 root 的所有文件.
# find /home -user root
24, 在 home 目录下查找对应组的所有文件
在 home 目录下查找对应组 developer 的所有文件.
# find /home -group developer
25, 查找后缀为 txt 的并且拥有者用户属于 root 的所有文件
查找后缀为 txt 的并且拥有者用户属于 root 的所有文件.
# find /home -user root -iname "*.txt"
第四部分: 通过文件修改的时间和日期来查找文件
26, 查找根目录下最后 50 天修改的文件
查找根目录下最后 50 天修改的文件.
# find / -mtime 50
27, 查找根目录下最后 50 天访问的文件
查找根目录下最后 50 天访问的文件
# # find / -atime 50
28, 查找根目录下最后 50 天到 100 天修改的文件
查找根目录下最后 50 天到 100 天修改的文件.
# find / -mtime +50 -mtime -100
29, 查找在过去一小时改变的文件
查找在过去一小时改变的文件.
# find / -cmin -60
30, 查找在过去一小时修改的文件
查找在过去一小时修改的文件.
# find / -mmin -60
31,, 查找在过去一小时访问的文件
查找在过去一小时访问的文件.
# find / -amin -60
第五部分: 通过文件大小来查找文件
32, 查找根目录下大小为 50M 的文件
查找根目录下大小为 50M 的文件.
# find / -size 50M
33, 查找根目录下大小为 50M 到 100M 之间的文件
查找根目录下大小为 50M 到 100M 之间的文件.
# find / -size +50M -size -100M
34, 查找根目录下大小超过 100M 的文件删除
查找根目录下大小为 100M 的文件删除.
# find / -size +100M -exec rm -rf {} \;
35, 查找根目录下格式为 MP3 并且大小超过 10M 的文件并删除
查找根目录下格式为 MP3 并且大小超过 10M 的文件并删除.
# find / -type f -name *.mp3 -size +10M -exec rm {} \;
来源: http://www.bubuko.com/infodetail-3066409.html