linux中的find命令小结

    很多高手使用linux时喜欢用命令行进行各种操作,比如,我的同学“暴民”。我只是偶尔用一下linux终端,在DOS时代,我的命令行用得还是不错的,但在linux下可就不怎么样了。这几天练习了一下linux下的查找文件命令-find。
    现根据自己的体会写一下这个命令的功能及简单用法。其实,通过学习之后才了解到linux下命令的强大。 举几个例子来说明其用法:

find . *.java -print
    查找当前目录及子目录中所有以java结尾的文件,并打印全路径信息;
    注:find后的每一个参数应该是路径;
find /usr -name ‘*.lib’ -print
    查找/usr目录及其子目录下的所有lib文件,并打印全路径信息;
    注:-name后是要找的文件名,可以带通配符,如*,?等;
find . -name ‘*.java’ -ls
    查找当前目录及其子目录下的所有java文件,并打印文件详细属性;
find . -name '*.java' -print | grep 'Helloworld'
    查找当前目录及其子目录下的所有java文件,显示文件名含有Helloworld字符串的文件名;
find . -name '*.java' -print |xargs grep 'Hello'
    查找当前目录及其子目录下的所有java文件,显示文件内容中含有Helloworld字符串的文件行及内容;
    以上两条命令用的是管道操作,请读者注意它们的不同之处;
find . -type f -mtime +7 -print0 | xargs -0 rm
    以上命令可以处理文件名中带空格或特殊字符的文件;
find /usr/lib -name '*.tmp'  -exec rm {} ';'
    查找/usr/lib目录及其子目录下的所有以tmp结尾的文件,并删除它们;
    注:-exec 参数用于执行完查找之后,在查找结果上运行指定命令;
find /usr/lib -type f /( -name '*.o' -o -name '.*'  /) -print
    查找/usr/lib 下的所有文件,要求其名为o结尾或是以.开头(隐藏文件);
    注:-type 后接文件类型,如f-文件,d-目录等,-o代表OR,-a代表AND(可以省略),!代表NOT,/是转义符,是为了使命令行中出现相要字符,如本例中的“(”和“)”,其实find命令是在计算一个逻辑表达式,即路径与-print(永真)之间的式子,如本例
{-type f /( -name '*.o' -o -name '.*'  /)}其实它就是一个布尔表达式,(-type f) AND (-name '*.o' OR -name '.*'),只有使这个表达式为真的文件才被显示。
    find还有许多强大的功能,由于本人所学有限,需要读者自行发掘,有时间可以man一下。我就先介绍到这里,请各位批评指正!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值