Linux⽂本查命令find的⽤法详解
find 命令主要⽤于查⽬录和⽂件,可以指定多种参数进⾏匹配。
⽤法:find +查路径 +命令参数 [输出形式]
查路径:告诉find在哪查
命令参数:指定要查的⽂件属性,属性包括多种,类型、名称、⼤⼩、修改时间等等
常⽤的参数:
-name 按⽂件名进⾏查
-user 按照⽂件的属主进⾏查
-mtime 按照⽂件的更改时间来查,-n 表⽰⽂件修改时间距今天n天以内,+n 表⽰⽂件修改时间距今天n天以前
-type 按照⽂件的类型查,d 表⽰⽬录, f表⽰⽂件,l 表⽰符号连接⽂件
-size 按照⽂件⼤⼩进⾏查(需要加单位,K、M、G),+n M 表⽰查⽂件⼤于n M的⽂件
-maxdepth 指定查⽂件时的最⼤层级(默认是在指定路径下的所有⼦⽬录中查,指定层级后可以现在只在⼀级⽬录或者2级⽬录查)
输出形式:输出形式可选,输出形式有 -print 打印查到的内容(默认就会打印查到的内容,因此⼀般不⽤),-exec 对查到的内容做进⼀步处理(⽐较常
⽤),形式为:
-exec Linux指令 {} \; {}代表查到的内容
实例:
find . -maxdepth 1 -name "1.txt" # 直接指定⽂件名查,-maxdepth 1表⽰最⼤查层级为⼀级⽬录
find . -maxdepth 1 -name "*.txt" # 在当前⽬录下查.txt结尾的⽂件
find . -maxdepth 1 -name "[0-9].txt" # 查以数字命名的txt⽂件
find . -maxdepth 1 -name "[0-9]*.txt" # 查以数字开头的⽂件
find . -maxdepth 1 -mtime -5 # 查当前⽬录下,5天之内有修改过的⽂件
find . -maxdepth 1 -mtime +5 # 查当前⽬录下,修改时间超过5天的⽂件
find . -maxdepth 1 -type d # 在当前⽬录中查类型是⽬录的⽂件,最⼤查层级⼀级⽬录(会查隐藏的⽬录)
find . -maxdepth 1 -size +10M # 查当前⽬录下⼤于10M的⽂件
find . -maxdepth 1 -size -1M # 查当前⽬录下⼩于1M的⽂件
find . -maxdepth 1 -name "[a-z].txt" -exec rm -rf {} \; # 查以⼀个字母命名的txt⽂件,进⾏删除
find . -maxdepth 1 -name "*.txt" | xargs grep "error" # 打印以txt结尾的⽂件中,有error的⾏的内容
find . -maxdepth 1 -name "*.txt" | xargs rm # 删除当前⽬录下txt结尾的⽂件
xargs 将管道前命令的执⾏结果当作参数逐个传递后管道后的命令
ls [a-z].txt | xargs -n1 -i{} mv {} {}.bak # 将当前⽬录中以单个字母命名的txt⽂件增加⼀个.bak后缀,-n1意思是⼀个⼀个对象的去处理,-i{} 把前⾯的对象使⽤{}取代,mv {} {}.bak 相当于 a.txt.bak 总结
find查命令的使用以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。如果你想了解更多相关内容请查看下⾯相关链接
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论