find
find查找文件
find /home/ -name '*asdf' -type [d,f] |more
-name #指定文件名
-type #指定类型 (f d l b c p s)
-mtime +30 #modify time 30天以前
-mtime -1 #1天以内
-size +1k #查找大于1k的 1M (K M G)
#组合使用
find /home/ -name "asdf" -type f -mtime -10 |xargs rm -rf {} \;
find /home/ -name 'asdf' -type f |xargs rm $1
find /home/ -name 'asdf' -exec cp -r $1 /tmp/
find /home/ -name 'asdf' -exec chmod -R 644 {} \;#把所有asdf文件权限改成644
find /home/ -name 'asdf' -type d -exec chmod -R 755 {} \; #把所有asdf文件夹权限改成755
-----------按照名字查找文件-------------
find ./ -type f -name "*.txt" #找出任意字符开头以.txt结尾
find ./ -maxdepth 1 -type f -name "*.txt" #查找当前目录的最大深度等级为1级,以.txt结尾
----------按照大小查找文件--------------
find ./ -type f -size +1M #查找文件大于1M的
find ./ -type f -size -10M #查找文件小于10M的
find ./ -type f -size +1M -size -10M #查找文件大于1M 并且小10M
find ./ -type f -name "*.txt" -size +10M #查找.txt结尾 并且大于10M的文件
----------按照时间查找文件--------------
find /tmp -type f -mtime +7 #查找文件的7天前修改过的文件
find /tmp -type f -mtime -5 #查找文件5天内修改过的文件
----------如何把find结果交给其他命令来使用---------
#如何将结果 传递给cat使用?
find /tmp -type f -name "oldboy.txt"|xargs cat 甩到最后
find /tmp -type f -name "oldboy.txt" -exec cat {} \; 替换
#;在这里不是命令分隔符 所以撬棍撬一下
exec!!! 这是个参数,后面跟的是命令,最后是以;分号结尾的 因为{}花括号里的内容意义不同,所以要加\转义
#如何将结果 传递给 mv cp使用?
find /tmp/ -type f -name "1.txt.bak"|xargs -i mv {} /root
find /tmp/ -type f -name "1.txt.bak" -exec mv {} /root \