Linux查找文件内容和文件位置

时间:2024-02-17 16:16:28

1、查找文件位置

在根目录下查找文件:

find / -name filename 或 locate filename

例如:

从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行

find / -type f -name "*.log" | xargs grep "ERROR"

从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”hello”的行
find . -name "*.in" | xargs grep "hello"

 

 

查找过程中出现错误而又不想让错误打印出来,可以将错误输出重定向到其它的文件中: 

某些文件目录会被系统管理员设置成禁止访问模式,这样普通用户就没有权限用“find”命令来查询这些目录或者文件,查询时,往往会出现"Permissiondenied."(禁止访问)字样。
  find / -name filename 2>/dev/null 
  2(stderrstream2)是标准错误输出,这里是将标准错误输出到/dev/null,这是个文件,所有传给它的东西都会丢掉。

 

根据部分文件名查找方法:

  find /etc -name \'*srm*\' 
   Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如absrmyz,tibc.srm。

 

根据文件的特征查询方法: 
  可通过文件的大小,修改日期等特征查找。 
  find / -size 1500c 字符c表明这个要查找的文件的大小是以bytes为单位,查找大小为1500字节的文件。

     find / -size +10000000c 在根目录中查找出大于10000000字节的文件并显示出来。命令中的“+”是表示要求系 统只列出大于指定大小的文件,而使用“-”则表示要求系统列出小于指定大小的文件。

  find / -amin -10        # 查找在系统中最后10分钟访问的文件 
  find / -atime -2        # 查找在系统中最后48小时访问的文件 
  find / -empty           # 查找在系统中为空的文件或者文件夹 
  find / -group cat       # 查找在系统中属于groupcat的文件 
  find / -mmin -5        # 查找在系统中最后5分钟里修改过的文件 
  find / -mtime -1       #查找在系统中最后24小时里修改过的文件 
  find / -nouser          #查找在系统中属于作废用户的文件 
  find / -user fred       #查找在系统中属于FRED这个用户的文件 
  

  -cmin n 
  查找系统中最后N分钟被改变状态的文件 
  -ctime n 
  查找系统中最后n*24小时被改变状态的文件 
  -false 
  查找系统中总是错误的文件 
  -fstype type 
  查找系统中存在于指定文件系统的文件,例如:ext2 . 
  -gid n 
  查找系统中文件数字组 ID 为 n的文件 
  -group gname 
  查找系统中文件属于gnam文件组,并且指定组和ID的文件。

 

2、查找文件内容  

从文件内容查找匹配指定字符串的行:$ grep "被查找的字符串" filename

例如,grep "hello world" */*.in  在当前目录里第一级文件夹中寻找字符串hello world的.in文件

从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名

查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名

查找匹配的行数:
$ grep -c "被查找的字符串" 文件名

从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名

 

 

http://blog.csdn.net/wxpara1955/article/details/49633415