`
xuelianbobo
  • 浏览: 171755 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

linux亦步亦趋(13)文件管理find命令

阅读更多

 

 故名思议find命令的作用是查找文件。其格式如下:

find 路径  选项 参数;

其主要的几个选项如下:

根据文件名进行查找:-name

格式:find 路径 -name  nameexpr

##查找/etc目录下的所有叫conf的文件或目录
[root@localhost /]# find /etc -name conf 
/etc/httpd/conf
/etc/logwatch/conf
[root@localhost /]#

 

name参数的值可以使用通配符:*代表任意字符,?代表一个字符。实例如下:

 

##通配符的使用 可以左右或者任意一边使用*号进行通配
[root@localhost /]# find /etc/java -name *.conf  
/etc/java/java.conf
[root@localhost /]#
##??占位符通配
[root@localhost /]# find /etc -name ???.conf 
/etc/dbus-1/system.d/hal.conf
/etc/gre.d/gre.conf

根据文件大小进行查找:-size

格式:find  目录 -size  大小;其中大小的单位是block即512bit,大小前面的+、- 分别代表 大于  小于  不写代表等于。

##根据文件的大小查找文件
[root@localhost /]# find /etc -size +4096
/etc/selinux/targeted/modules/active/base.pp
/etc/selinux/targeted/modules/active/base.linked
/etc/gconf/gconf.xml.defaults/%gconf-tree.xml
[root@localhost /]#

 

根据所有者进行查找:-user

格式:find 路径 -user username;

 

##根据文件所有者查找文件
[root@localhost /]# find /home -user test
/home/test/test.sh
[root@localhost /]# ls -l /home/test
总计 0
-rwxrwxrwx 1 test test 0 07-22 21:55 test.sh  ##文件的所有者就是test
[root@localhost /]#

根据时间查找:

这个选项比较重要,其中所涉及的时间也比较多,如下:

  • ctime、cmin  文件属性被修改的时间,time是天为单位,min是分钟为单位
  • atime、amin 文件被访问的时间,time是天为单位,min是分钟为单位
  • mtime、mmin 文件内容被修改的时间,time是天为单位,min是分钟为单位

实例如下:

格式:find 目录  -ctime +n  ;+号表示之外,-号表示之内。看例子吧:

 

##根据时间查找文件
[root@localhost /]# find /etc -ctime -1  ##表示一天内修改了文件属性的文件
/etc
/etc/aliases.db
/etc/shadow-
[root@localhost /]# find /etc -amin -1    ##一分钟内被访问过的文件
/etc/mtab
/etc/nsswitch.conf
/etc/sysconfig/networking/profiles/default/resolv.conf
[root@localhost test]# find ./ -mmin -20  ##20分钟内更改过文件内容的文件
./test.sh
[root@localhost test]#

根据类型查找:-type

上面的操作中我们查到的结果有文件,目录,链接。因此我们可以根据type进行过滤。

  • 格式:find 目录  -type typevalue。 
  • 格式l:表示链接文件。
  • 格式f:表示文件。
  • 格式d:表示目录。

实例如下:

 

##根据类型查找文件
[root@localhost test]# find /etc/fonts -type l  ##查找为链接的文件
/etc/fonts/conf.d/80-delicious.conf
/etc/fonts/conf.d/30-urw-aliases.conf

条件连接符:-a、 -o

  • -a表示and,即与的关系
  • -o表示或。

实例如下:

##查找文件名ini开头的目录
[root@localhost test]# find /etc -name ini* -a -type d
/etc/rc.d/init.d
[root@localhost test]#
##查找文件名为init或者init.d的文件
[root@localhost /]# find /etc -name init -o -name init.d
/etc/rc.d/init.d
/etc/init.d
/etc/sysconfig/init
[root@localhost /]#

 

 

二次操作连接执行:-exec、-ok

我们找到的文件要是进行二次操作应该怎么办呢,我们可以使用 -exec 或者-ok进行连接处理

  • find ..... -exec 命令 {} \;  找到结果后对文件进行命令处理,且不进行询问。
  • find ..... -ok 命令 {} \;找到结果后对文件进行命令处理,且进行询问。

如下实例:

##-exec 连接二次操作
[root@localhost home]# find ./ -name test.sh -exec ls -l {} \; ##找到后ls一下文件的属性
-rwxrwxrwx 1 test test 4 07-22 23:56 ./test/test.sh
[root@localhost home]#
##-ok 连接二次操作
[root@localhost home]# find ./ -name test.sh -ok ls -l {} \; ##使用ok
< ls ... ./test/test.sh > ? y ##此处对我们进行了询问
-rwxrwxrwx 1 test test 4 07-22 23:56 ./test/test.sh
[root@localhost home]#

 

 

操作特殊文件:-inum

这里所说的特殊文件指的是文件名特殊,我们不方便输入的。比如有乱码、有特殊字符、不可见字符等。而我们要执行改名啊,删除啊,修改啊 等操作。

我们可以使用下面的两个命令进行结合:

  • ls -i 文件名
  • find -inum inode值 -exec 命令 {} \;

 

举例如下:

 

##目录下有一个比较怪的文件名的文件,我们要将其删除,直接用文件名肯定是比较费劲的。
[root@localhost test]# ls -l
总计 4
-rw-r--r-- 1 root root 0 07-23 00:16 file df dfd  ~ i~
-rwxrwxrwx 1 test test 4 07-22 23:56 test.sh
[root@localhost test]#
##使用ls -li 显示问价的inum值
[root@localhost test]# ls -li
总计 4
2107057 -rw-r--r-- 1 root root 0 07-23 00:16 file df dfd  ~ i~
2107044 -rwxrwxrwx 1 test test 4 07-22 23:56 test.sh
[root@localhost test]#
##下面使用find命令删除
[root@localhost test]# find ./ -inum 2107057 -exec rm -f {} \;
[root@localhost test]# ls -li
总计 4
2107044 -rwxrwxrwx 1 test test 4 07-22 23:56 test.sh

 

 

 

1
1
分享到:
评论
1 楼 xuelianbobo 2014-07-25  
 

相关推荐

    亦步亦趋的代码移植——从Linux到Windows的代码移植.pdf

    亦步亦趋的代码移植——从Linux到Windows的代码移植.pdf

    亦步亦趋也是个问题.doc

    亦步亦趋也是个问题.doc

    主板芯片组与CPU的亦步亦趋.pdf

    主板芯片组与CPU的亦步亦趋.pdf

    精品开拓市场 创新驱动 探讨中国烟草行业的数字化转型之路(PDF报告).rar

    在面对全球经济的快速变化和数字化浪潮的冲击下,中国烟草行业亦步亦趋地探索着自身的数字化转型之路。这份名为【精品】开拓市场 创新驱动 探讨中国烟草行业的数字化转型之路(PDF报告).rar的报告,便是一份深入...

    j2ee订票系统

    明确要实现何种功能,清楚设计的方法有哪几种,是否满足用户要求等多个方面进行预设计,其次对于自己是否已经掌握某方面技术要有一个全面的认识,不懂的就需要进一步学习,做得到亦步亦趋,最后,在对产品有一个全新...

    23种GoF设计模式Java版.pdf

    如果技术人员有发展的轨迹,那么他要么“看透工具的本质,把关注点转移到‘团队’的圈子里去”,要么“顺着代码铺就的道路,亦步亦趋地成为良匠大师”。仅以技术方向而言,你大概可以做到架构师、总架构师甚至首席...

    大道至简——软件工程思想方法学

    在缺乏独立思维、对国外工程理论亦步亦趋的国内工程界、开发业界,该书无疑是一份激荡新思的佳作。 本书是第一本讨论软件工程思想本源的书籍,也是第一本从工程实践出发溯源而论的佳作。也是老师经常推荐的一本好书...

    主流敏捷开发方法:Scrum基础知识解释

    人们在自己的工作中和处理问题时,应该像一个成熟的成年人一样,因此它并不涉及具体的软件开发技术和人员沟通、期望管理、问题冲突等管理技能,这些都需要其他相关理论和技能来补充。来自英式橄榄球运动,本质含义...

    Access入门教程

    简单的Access入门教程,适合零基础人员学习,浅显易懂,亦步亦趋,不错的教程

    C语言调用mysql快速教程(精华篇).doc

    最快速的c语言调用mysql的教程,亦步亦趋,可以在最短时间链接mysql与c语言的关系,其中内容包括怎么样用c语言插入,更新,删除mysql的数据表,并且在范例中有select出mysql的数据并且打印显示出来!!非常简明易懂...

    geekwalk:用Java写个简易版Nginx

    这是一个我用业余时间,慢慢打磨的项目,几乎所有的编程工作都会以B站 / 的形式共享出来,所以你会看到一个程序员亦步亦趋编写代码的全过程,故而命名为Geekwalk 反向代理服务器,在实际项目中主要扮演网关——...

    复变函数札记

    复数理论从跟着实数亦步亦趋,到达独立自主这一步,其间最关键有三点:Euler公式、Cauchy-Riemann条件和幂函数的闭路积分。《复变函数札记》着重讨论解析函数、复积分和复级数。由此引出它们的应用:留数定理、保角...

    液晶面板行业战略转型

    2011 年8 月31 日,索尼、东芝和日立三家公司宣布...本面板企业此次整合对于一直尾随在外资其后,亦步亦趋的中国面板商而言,无疑带来很 大冲击。要提高在面板市场的实力,大陆面板企业应通过战略联盟,确保技术能力

    关于编码常见的20个陷阱 你中枪了没?

     不管你现在的编程技能有多么的高超,曾经你也是个亦步亦趋,不断的学习的初学者。在编程这条曲折的道路上,我想你肯定犯过一些低级的错误、遇见过一些普通的编码陷阱。本文作者跨越多个语言,为大家总结了20条...

Global site tag (gtag.js) - Google Analytics