根据文件类型搜索数据 -type
find /oldboy -type f/d/l/c/b/s
根据文件名称搜索数据 -name
find /oldboy -name "*dog*"
find /oldboy -iname "oldboy.txt"
-i --- 忽略大小写
根据文件大小搜索数据
find /oldboy -size +10k --- 寻找大于10k文件
find /oldboy -size -1G --- 寻找小于1G文件
find /oldboy -size 10 --- 寻找大小正好是10字节文件
===============================================================================================
补充: find命令根据大小查找数据单位信息
`b' for 512-byte blocks (this is the default if no suffix(角标/下标) is used)
1个块=512字节 +1 > 512字节 ok -2 <1024 (小于一整块) 1 = 512字节 ok
`c' for bytes
最小尺寸单位
`w' for two-byte words
以两个字节作为一个单词找出不同尺寸文件
`k' for Kilobytes (units of 1024 bytes)
依据kb尺寸寻找数据
`M' for Megabytes (units of 1048576 bytes) ****
依据Mb尺寸寻找数据
`G' for Gigabytes (units of 1073741824 bytes)
依据Mb尺寸寻找数据
===============================================================================================
根据文件路径深度查找
find /oldboy -maxdepth 1 -name "oldboy01.txt"
/oldboy/oldboy01.txt
find /oldboy -mindepth 2 -name "oldboy01.txt"
/oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy01.txt
/oldboy/oldboy01/oldboy02/oldboy03/oldboy01.txt
/oldboy/oldboy01/oldboy02/oldboy01.txt
/oldboy/oldboy01/oldboy01.txt
-mindepth --- 查找数据最小深度, 从最小深度开始继续向下查找
-maxdepth --- 查找数据最深深度
根据条件逻辑查找数据
1)并且逻辑关系 -a
find /oldboy -size +6k -a -name "oldboy*"
find /oldboy -size +6k -name "oldboy*"
2)或者逻辑关系 -o
find /oldboy -name "oldboy*" -o -name "oldgirl*"
根据时间条件查找数据
find /oldboy -mtime +7 --- 找距离当前时间7天以前的数据
find /oldboy -mtime -7 --- 找距离当前时间7天以内的数据
find /oldboy -mtime 7 --- 找距离当前时间之前正好7天的数据
find /var/ -mmin +1 --- 找距离当前时间1分钟以前的数据
find /var/ -mmin -1 --- 找距离当前时间1分钟以内的数据
find /var/ -mmin 1 --- 找距离当前时间之前正好1分钟的数据
利用find命令 -prune 修剪 -print 输出
[root@oldboy69 oldboy 23:12:38]# find /oldboy -path "/oldboy/oldboy02"
/oldboy/oldboy02
[root@oldboy69 oldboy 23:14:08]# find /oldboy -path "/oldboy/oldboy02" -o -name "oldgirl02.txt"
/oldboy/oldboy01/oldgirl02.txt
/oldboy/oldboy02
/oldboy/oldboy02/oldgirl02.txt
/oldboy/oldboy03/oldgirl02.txt
[root@oldboy69 oldboy 23:14:36]# find /oldboy -path "/oldboy/oldboy02" -prune -o -name "oldgirl02.txt"
/oldboy/oldboy01/oldgirl02.txt
/oldboy/oldboy02
/oldboy/oldboy03/oldgirl02.txt
[root@oldboy69 oldboy 23:15:29]# find /oldboy -path "/oldboy/oldboy02" -prune -o -name "oldgirl02.txt" -print
/oldboy/oldboy01/oldgirl02.txt
/oldboy/oldboy03/oldgirl02.txt
find 做批量删除
步骤一: 先将要处理数据找出来
步骤二: 将数据如何批量删除
方法一: 利用find命令参数
find /oldgirl/ -name "oldboy*" -delete
方法二: 利用管道+xargs命令进行处理
find /oldgirl/ -type f -name "olddog*" | xargs rm -rf
xargs
1) 将产生信息进行转换, 转为命令可以识别的 参数或者对象信息
2) 可以进行分组操作/将分组进行整合
[root@oldboy69 oldgirl 00:40:41]# xargs < test.txt
01 02 03 04 05 06 07 08 09 10
[root@oldboy69 oldgirl 00:41:20]# xargs -n3 < test.txt
01 02 03
04 05 06
07 08 09
10
方法三: 利用反引号进行处理
rm -f `find /oldgirl/ -type f -name "olddog*"`
方法四: 利用find命令特殊参数 -exec
find ./ -type f -name "oldboy*" -exec rm -f {} \;
find /oldgirl/ -type f -name "oldboy*" -exec rm {} \; -o -type f -name "oldgirl*" -exec rm {} \;