Linux查找文件内容和文件位置
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