linux搜索文件的命令怎么用 linux打开文件命令( 二 )


来看看xargs命令是如何同find命令一起使用的 , 并给出一些例子 。
查找系统中的每一个普通文件 , 然后使用xargs命令来测试它们分别属于哪类文件
[root@zcwyou ~]# find . -type f -print | xargs file
在整个系统中查找内存信息转储文件(core dump)  , 然后把结果保存到/tmp/core.log 文件中:
[root@zcwyou ~]# find / -name "core" -print | xargs echo "" >/tmp/core.log
用grep命令在所有的普通文件中搜索hostname这个词
[root@zcwyou ~]# find . -type f -print | xargs grep "hostname"
删除3天以前的所有东西
[root@zcwyou ~]# find ./ -mtime +3 -print | xargs rm -f -r
删除文件大小为零的文件
[root@zcwyou ~]# find ./ -size 0 | xargs rm -f &
find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令 。

linux搜索文件的命令怎么用 linux打开文件命令

文章插图
linux命令常用选项及实用搜索案例
3. 使用强大grep命令搜索文件内容
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 , 它能使用正则表达式搜索文本 , 并把匹配的行打印出来 。
linux搜索文件的命令怎么用 linux打开文件命令

文章插图
linux使用强大grep命令搜索文件内容
3.1 grep命令的一般选项及实例
grep [OPTIONS] PATTERN [FILE…]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE…]
grep命令用于搜索由Pattern参数指定的模式 , 并将每个匹配的行写入标准输出中 。这些模式是具有限定的正则表达式 , 它们使用ed或egrep命令样式 。如果在File参数中指定了多个名称 , grep命令将显示包含匹配行的文件的名称 。对 shell 有特殊含义的字符 (HOME目录中查找文件属主为sam的文件¨G2G按照文件所属的组来查找文件 。在/usr目录下查找属于zcwyou用户组的文件选项¨C10C¨G3G选项¨C11C?n+n , 按照文件的更改时间来查找文件 , ?n表示文件更改时间距现在n天以内 , +n表示文件更改时间距现在n天以前 。使用案例在系统根目录下查找更改时间在5日以内的文件¨G4G在/var/adm目录下查找更改时间在3日以前的文件¨G5G选项¨C12C查找无有效所属组的文件 , 即该文件所属的组在/etc/groups中不存在 。¨G6G选项¨C13C查找无有效属主的文件 , 即该文件的属主在/etc/passwd中不存在 。使用案例:在/home目录下查找¨G7G查找更改时间比文件file1新但比文件file2旧的文件 。¨C14Cfile1!file2查找某一类型的文件 , 诸如:¨C15Cb?块设备文件 。d?目录 。c?字符设备文件 。p?管道文件 。l?符号链接文件 。f?普通文件 。在/etc目录下查找所有的目录¨G8G在当前目录下查找除目录以外的所有类型的文件¨G9G在/etc目录下查找所有的符号链接文件¨G10G?sizen:[c]查找文件长度为n块的文件 , 带有c时表示文件长度以字节计 。在当前目录下查找文件长度大于1M字节的文件¨G11G在/home/apache目录下查找文件长度恰好为100字节的文件¨G12G在当前目录下查找长度超过10块的文件(一块等于512字节)¨G13Gfind命令把匹配到的文件传递给xargs命令 , 而xargs命令每次只获取一部分文件而不是全部 , 不像?exec选项那样 。这样它可以先处理最先获取的一部分文件 , 然后是下一批 , 并如此继续下去 。在有些系统中 , 使用?exec选项会为处理每一个匹配到的文件而发起一个相应的进程 , 并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多 , 系统性能下降的问题 , 因而效率不高;而使用xargs命令则只有一个进程 。另外 , 在使用xargs命令时 , 究竟是一次获取所有的参数 , 还是分批取得参数 , 以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定 。来看看xargs命令是如何同find命令一起使用的 , 并给出一些例子 。查找系统中的每一个普通文件 , 然后使用xargs命令来测试它们分别属于哪类文件¨G14G在整个系统中查找内存信息转储文件(coredump) , 然后把结果保存到/tmp/core.log文件中:¨G15G用grep命令在所有的普通文件中搜索hostname这个词¨G16G删除3天以前的所有东西¨G17G删除文件大小为零的文件¨G18Gfind命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令 。![linux命令常用选项及实用搜索案例](http://images.linuxrumen.com/linux/linux?search?command?usage?guide/linux?search?command?usage?guide?03.jpg?1)¨K38Kgrep(globalsearchregularexpression(RE)andprintouttheline,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 , 它能使用正则表达式搜索文本 , 并把匹配的行打印出来 。![linux使用强大grep命令搜索文件内容](http://images.linuxrumen.com/linux/linux?search?command?usage?guide/linux?search?command?usage?guide?04.png?1)¨K39Kgrep[OPTIONS]PATTERN[FILE...]grep[OPTIONS][?ePATTERN∣?fFILE][FILE...]grep命令用于搜索由Pattern参数指定的模式 , 并将每个匹配的行写入标准输出中 。这些模式是具有限定的正则表达式 , 它们使用ed或egrep命令样式 。如果在File参数中指定了多个名称 , grep命令将显示包含匹配行的文件的名称 。对shell有特殊含义的字符(, *, [, |, ^, (, ),) 出现在 Pattern参数中时必须带双引号 。如果 Pattern参数不是简单字符串 , 通常必须用单引号将整个模式括起来 。在诸如 [a-z], 之类的表达式中 , -(减号)cml 可根据当前正在整理的序列来指定一个范围 。整理序列可以定义等价的类以供在字符范围中使用 。如果未指定任何文件 , grep会假定为标准输入 。