Linux命令五分钟

《find技巧》-“linux命令五分系列”之一

本原创文章属于《Linux大棚》博客。

博客地址为http://roclinux.cn

文章作者为roc

希望您能通过捐款的方式支持Linux大棚博客的运行和发展。请见“关于捐款

==

1. 想查看当前文件夹及子文件夹里有没有文件名为“abc”的文件

# find . -name abc

. :表示当前目录

-name:表示要根据名称查找

2. 想查看当前文件夹及子文件夹里有没有”xyz”目录

# find . -type d -name xyz

-type:表示设定类型,d表示文件夹类型,可以替换为f(普通文件)、l(链接文件)

3. 想找出当前文件夹及子文件夹里所有后缀是”.txt”的文件

# find . -name “*.txt”

4. 想查找当前目录及其子文件夹中“roc”用户自己的文件有哪些

# find . -user roc

-user:用于设定所属用户的名称,此处可替换为-group,即所属用户组的名称

5. 想查找当前文件夹及子文件夹里权限设定为755的所有文件

# find . -perm 755

-perm:用于设定权限

6. 想查找当前文件夹及子文件夹里的同时含有b字符和3字符的文件:用到正则表达式技术

# find . -regex ‘.*b.*3’

-regex:表示使用正则表达式进行匹配。请注意,此命令会和“全路径”进行匹配,也就是说前面要加.*,因为输出结果中会有“./”符号。

7. 如果想全部输出用find命令查找出的”*.abc”文件的内容

# find . -type f -name “*.abc” -exec cat {} \;

-exec 表示由find找到的匹配项会作为“-exec后面设定的命令”的参数

可以使用-ok代替-exec,这样对每个匹配项进行操作,都会要求用户确认(y为是,n为否)

命令最后的{} \; 别忘了写,其中{}代表用find查找到的结果中的每一个查找项。

8. 查找当前目录下在5分钟内被访问过的文件

# find . -amin -5

访问过用amin,修改过用mmin,文件状态改变过用cmin

精确到分钟的用amin,mmin,cmin,精确到天的用atime,mtime,ctime

在5分钟之内的用-5,在5分钟以上的用+5

9. 想查找当前目录及子目录下文件大小大于10M的所有文件

# find . -size +10000000c

-size:表示文件大小,+表示大于某个数,-表示小于某个数。c表示单位是字节,你可以将c换成k,M,G。

10. 上述所有的find命令都是查找当前目录及其子目录。如果不想深入到子目录中,而是只查找当前一层目录,则可以:

# find . -maxdepth 1 -name “*.c”

over~

18条评论

  1. 有问题想咨询一下站长哈~
    在第六个正则表达式那一部分“# find . -regex ‘.*b.*3’”,然后后面的注意讲“也就是说前面要加.*,因为输出结果中会有“./”符号。”
    对这边的理解有些迷惑,『.*』不是应该表示的有一个或多个不确定的字符吗?所以觉得和全路径没有什么关系呀,感觉加了『.*』并不能说明输出结果会有“./”这样的符号呀,如果没有“./”不应该也这么写吗?还有一点就是既然是全路径为什么会有“./”这样组合的符号呢?
    还望站长指导指导……

  2. 最近在Android手机上调试shell命令,一路google相关资料,就到这里来了。写的不错,继续努力!

    好像没有grep、awk相关的文章,话说busybox里面的命令也不少啊,有得学,有得用!

  3. 如果是在当前文件夹下面查找某些字符串呢? 我觉的这个也应该详解解说一些 呵呵

    1. 用法就是:
      grep -r 要查找的文字 文件列表
      比如我要查当前文件夹下的文本文件中包含hello rocrocket的文件,就这样写:
      grep -r “hello rocrocket” *

发表您的评论

请您放心,您的信息会被严格保密。必填项已标识 *