一、命令简介
find 命令的 -size 参数 单位b(不是byte而是block)、c、w、k、M、G。默认是单位b ,也就是1block = 512byte = 0.5kb (文件系统ext4)
-size参数的这些单位都存在误差,无法计算 -1b -1c -1k -1M -1G,这些都被视为0,空文件
-size 1k 表示查找 大小在 0~1k之间的文件 ;-size 1M 表示查找大小在 0~1M之间的文件 -size 1G 表示大小在0~1G之间的文件
-size 5k 表示查找 大小在 4k~5k之间的文件; -size 5G表示查找大小在4~5G之间的文件,以此类推。
ls 命令加 -s -h 参数 执行结果中文件大小为文件内容的字符个数+1 这个1是 dollar $
du 命令加 -sh 参数显示的是文件所占磁盘块的大小
二、对应关系
如果要在这三个命令之间寻求文件大小的对应关系
find 命令 -size 参数的数字后需要加 c单位才能和 ls 命令相对应
du 无法和 find 、ls取得准确对应,du只能粗略显示文件所占磁盘块大小
三、关于 atime mtime ctime amin mmin cmin
四、查找并删除空文件
find temp/ -type f -empty -exec rm -rf {} ;
五、查找昨天修改的视频文件,后缀为.mp4
find upload/video/ -mtime -1 -type f -name *.mp4 -exec echo "http://cdn.233xyx.com/"{} ; > mp4.txt
六、查找两分钟内生成的apk文件,并复制到新的目录下
find /data/jenkins -cmin -2 -name "*.apk" -exec cp {} /data/nginx/html/apk/jenkins ;
七、查找target目录下、大于20Mb、一分钟内创建的文件
find target -maxdepth 1 -type f -size +20M -regex "target/w+.[jw]ar" -cmin -1
八、删除当前目录下的文本文件,而不删除目录
find . -maxdepth 1 -type f -delete