本文简介:find 的另一个应用是搜索属于某个给定用户的文件,因此为了搜索我的系统中所有属于我的文件,我使用以下命令:find / -user nickg
命令行一直是Linux用户用来解决问题的首要选择。当需要做某件事时,你只要想好如何去做,从那时起你就知道该如何做了。
不过很少有人花些时间系统地了解处理工具在处理过程中的输入和输出。因此对于最基本实用工具的功能可能并不是很了解。在本文中,我们将讨论所有shell工具箱中都有的一个重要工具:find实用工具。
正如它的名字所表示的,find是在磁盘中查找满足给定标准的文件和目录的应用程序。默认情况下,它从当前目录开始,向下扫描所有子目录。Find基于各种不同的文件属性来进行查询,而且可以对查询结果执行某种操作,通常是对每个查询结果运行一些程序。
让我们来看一些例子:首先,为了在当前目录或子目录中查找所有html文件,我们可以使用:find -name "*.html" -type f
该命令有两个测试条件,第一个,“-name”用于检验搜索过程中的每个文件名,如果你需要对大小写敏感,可以使用“-iname”代替。第二个参数是“-type”,它用于指定你感兴趣的文件类型。“f”表示我们查找的是普通文件,我们可以使用“d”表示目录或使用“l”表示符号连接。在find 手册中可以看到该工具的所有选项。
在上面的这个例子中,因为我们要在当前目录中搜索,所以没有指定路径。你可以从你的系统中的任何目录开始搜索,例如,你知道html文件存放在两个位置之一中,那么我们就可以通过指定一个开始搜索点使查询更快更准确。
find /var/www /home/nickg/public_html -name "*.html" -type f
这个查询从web服务器的根目录开始,搜索我的html根目录和它的子目录,希望能够得到我们想要的结果,而不是像web浏览器缓存或html帮助文件。
默认情况下,find遍历所有子目录,但是你可以通过指定最大深度来控制这个行为。在前面的例子中,如果我们只想搜索这两个目录不想搜索下一层,你可以添加“-maxdepth 1”到命令中。设置最大深度为0表示只检验命令行中的给定文件。同样,你可以设定最小深度,从而避免搜索位于根目录的文件。
find 的另一个应用是搜索属于某个给定用户的文件,因此为了搜索我的系统中所有属于我的文件,我使用以下命令:find / -user nickg
同样可以搜索基于组用户的文件,使用“-group”参数。
另外的测试分类与时间相关,我们可以用基于时间的方式来搜索文件,可以分别使用“-ctime”,“-atime”和“-mtime”参数来指定最后创建时间,最后访问时间和最后修改时间。例如要搜索前天创建的文件,可以使用:find -ctime -1
注意1前面的“-”表示我们是从今天向以前的日期范围搜索。如果你需要更精确地搜索,可以使用分钟变量“-cmin”,“-amin”和“-mmin”。如果你刚犯了一个错误但不确定会影响到那些文件,这很简单可以使用如下查询:find -mmin -5
find对文件执行的标准行为是显示出文件名,这就是为什么如果你跟踪结果,就会看到一系列文件名的原因。如果你想使用这些结果作为另外一个过滤器的输入的话,这将会十分有用。但是如果你需要结果的更多信息,你可以令find输出与ls –l 同样的结果:
find -user nickg -iname "*.html" –ls
这个命令将会返回文件权限和时间信息。
最后,你可以通过使用“-exec”参数,来让find命令对每个搜索结果运行任何程序。下面的程序将会删除你的home目录中所有扩展名为“.tmp”的文件。
find -name ".tmp" -exec rm {} ;
上面两个大括号将会被相应的文件名代替,反斜杠用来告诉find何时命令结束。Find常和chmod结合使用快速改变大量文件的文件权限,或者和 grep与sed结合使用来选择性的搜索或使用正则表达式修改文本。这仅是与find相关使用技巧的冰山一角,使用它作为一个脚本的输入,你可以让费时的任务自动完成,例如清除一年内没有访问的文件,或者自动备份修改的文件。Find的这种强大更能意味着它仍将是linux用户用来处理任务的最好工具之一
分享到:
相关推荐
find是在磁盘中查找满足给定标准的文件和目录的应用程序。默认情况下,它从当前目录开始,向下扫描所有子目录。Find基于各种不同的文件属性来进行查询,而且可以对查询结果执行某种操作,通常是对每个查询结果运行...
Linux 命令行专门设计了很多非常有用的命令行工具在你的电脑上查找文件。下面我们看一下它们其中三个:ls、tree 和 find。感兴趣的朋友跟随小编一起看看吧
本书全面系统地介绍了Red Hat Linux 6。全书共分为五个部分,包括35章和四个附录。第一部分为Red Hat Linux的介绍和安装;第二部分为服务配置;第三部分为系统管理;第四部分为Linux编程;第五部分为附录。本书内容...
本书详细讲解了用Linux的图形配置工具配置Caldera OpenLinux,通过一个ppp与网络连接、使用K桌面环境、用StarOffice提高在家办公的效率、网络浏览、发传真、接收email及使用GIMP等图形工具。 24学时每次1小时的课程...
第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改时间查找文件 ...
如果选择用命令行模式登录Linux的话,那么看到的第一个Linux命令就是login:。 一般界面是这样的: Manddrake Linux release 9.1(Bamboo) for i586 renrel 2.4.21-0.13mdk on i686 / tty1 localhost login:root ...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...
20.1.2 命令行输入的最后一个参数 225 20.1.3 使用shift处理文件转换 226 20.2 getopts 229 20.2.1 getopts脚本实例 229 20.2.2 getopts使用方式 231 20.2.3 使用getopts指定变量取值 231 20.2.4 访问取值方式 232 ...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...
linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...
详细的介绍了Linux下的编程指南 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...
linux/unix shell编程指南,全面介绍了Linu/unix shell编程的常用知识和技巧,是不可多得的编程宝典。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限...