查找文件命令:

which       查看可执行文件的位置 
whereis    查看文件的位置 
locate       配 合数据库查看文件位置 
find          实际搜寻硬盘查询文件名称

一:find

?表示  通配任意的单个字符

*表示  通配任意的字符

1:查找指定的文件并删除

1> rm -f `find . -name "*.log"`

2> find . -name "*.log" | xargs rm -f

3> find . -name "*.log" -exec rm -f {} \;

注意:在{}和\之间必须要有空格,否则会报 find: missing argument to `-exec'

    (xargs -0 参数防止文件名中有空格导致被 rm 认作是两个不同的文件。

{}   花括号代表前面find查找出来的文件名。

    find . -name "*.log" -exec cp {} {}.bak \;  复制文件

4> find . -type f -name "*.txt" -delete

备注:

find ~ -name "[0-9]*.pid" -print   #查找以数字开头的所有pid文件,在这里要说[0-9]*不能匹配23,它跟一般的语言类正则不太一样,shell里面的*可以代表一切字符(单个,多个都行)
如果想匹配2345只能这样写[0-9][0-9][0-9][0-9]

 2:多目录、多条件搜索

-a 连接两个不同的条件(两个条件必须同时满足)

-o 连接两个不同的条件(两个条件满足其一即可)

-not 对条件取反的

1> find mediatek/ frameworks/ system/ external/  -iname "*sqlite*.c"

2> 多文件搜索+多目录搜索

find mediatek/ frameworks/ system/ external/  -iname "*sqlite*.c" -o -iname "*sqlite*.cpp" -o -iname "*sqlite*.java"

3:查找条件

-type:

f     // 普通文件

d     //目录文件

l     //链接文件

b     //块设备文件

c     //字符设备文件

p     //管道文件

s     //socket文件

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-nouser  and  -nogroup

在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的,作为系统工程师的我们应该及时清除掉)

-newer file1 ! file2  查找更改时间比文件file1新但比文件file2旧的文件。

-prune  使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

-mtime -n +n  按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。

另外,下面三个的区别:

-amin n   查找系统中最后N分钟访问的文件

-atime n  查找系统中最后n*24小时访问的文件

-cmin n   查找系统中最后N分钟被改变文件状态的文件

-ctime n  查找系统中最后n*24小时被改变文件状态的文件

-mmin n   查找系统中最后N分钟被改变文件数据的文件

-mtime n  查找系统中最后n*24小时被改变文件数据的文件

例子:

find . -type d | sort  查找当前所有目录并排序

find . -size +1000c -print  查找当前目录大于1K的文件   +大于 -小于 没有前缀为等于

find . -name "*.log" -mtime +5 -ok rm {} \;   在目录中查找更改时间在n日以前的文件并删除它们,在删除之前先给出提示

find /etc -name "passwd*" -exec grep "root" {} \;   任何形式的命令都可以在-exec选项中使用。  在上面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个root用户。

find . -name "*.log" -exec mv {} .. \;   查找文件移动到指定目录

find . -perm -7 -print | xargs chmod o-w    在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限

find . -size +1000000c -print  在当前目录下查找文件长度大于1 M字节的文件

find . -size +10 -print  在当前目录下查找长度超过10块的文件(一块等于512字节)

find后执行xargs提示xargs: argument line too long解决方法:

find . -type f -atime +0 -print0 | xargs -0 -l1 -t rm -f

-l1是一次处理一个;-t是处理之前打印出命令

常见错误原因:

1> 为什么不能直接用ls输出find查找的结果,而要用exec或 搭配 xargs才能输出结果?

find / -perm +7000 | ls -l

答:ls的参数从argv获取,管道给ls的是STDIN_FILENO

int main(int argc, char *argv[])
注意区分命令行参数(术语不一定标准)和标准输入。
ls期待的是命令行参数,即main()的`argv`;
而管道传给ls的是标准输入,和`argv`没有关系。
http://www.zhihu.com/question/36827128?sort=created

二:statstat -f <file>: 显示<file>所在文件系统的状态信息。

stat <file>: 显示指定文件<file>的状态信息。

三:file

查看文件类型

四:which

which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件

五:whereis

whereis [-bmsu] 文件或者目录名称 
参数说 明: 
-b : 只找二进制文件 
-m: 只找在说明文件manual路径下的文件 
-s : 只找source源文件 
-u : 没有说明文档的文件 
例如:

whereis passwd

passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz

whereis -b passwd

passwd: /usr/bin/passwd /etc/passwd

和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

六:locate
locate 文件或者目录名称

即先运行:updatedb(无论在那个目录中均可,可以放在crontab中 )后在   /var/lib/mlocate/ 下生成 mlocate.db 数据库即可快速查找。在命令提示符下直接执行#updatedb 命令即可:

常用语句:

获取匹配某个字段的整行:

cat /opt/data/chrome/*/*/2016-03-02/00/guess2016-03-02_00_00.txt | awk '$5 ~ "^http://www.2345.com"' | grep "2016-03-02 00:00:00"

linux分享三:文件操作的更多相关文章

  1. 3)Linux程序设计入门--文件操作

    )Linux程序设计入门--文件操作 Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 .文件的创建和读 ...

  2. linux下的文件操作——批量重命名

    概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...

  3. linux编程之文件操作

    在linux下用文件描述符来表示设备文件盒普通文件,文件描述符是一个整型的数据,所有对文件的操作都是通过文件描述符来实现的. 文件描述符是文件系统中连接用户空间和内核空间的枢纽,当我们打开一个或者创建 ...

  4. python学习笔记(三):文件操作和集合

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...

  5. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  6. Linux系统编程@文件操作(一)

    只总结了部分常用的内容,详细内容参考<UNIX环境高级编程>及相关书籍. Linux中文件编程可以使用两种方法 Linux系统调用(依赖于系统) C语言库函数(不依赖于系统) Linux系 ...

  7. Linux C 程序 文件操作(Linux系统编程)(14)

    文件操作(Linux系统编程) 创建一个目录时,系统会自动创建两个目录.和.. C语言实现权限控制函数 #include<stdio.h> #include<stdlib.h> ...

  8. Xshell6远程访问linux及Xftp6远程针对linux系统中文件操作(附图文详解)

    1.首先我们需要先做好前期准备工作,需要到XManager6官网上将Xshell及Xftp下载并安装,安装过程一直下一步就好了.这里是其官网:http://www.xshellcn.com/.安装完成 ...

  9. Linux 目录和文件操作

    Linux常用命令--目录和文件操作 [目录]删除.复制.移动 : 1.删除文件夹用:rmdir 文件夹名 但是rmdir不能删除非空的文件夹,那如何删除非空文件夹呢: 2.通常情况下,删除文件用:r ...

  10. 一、linux基础-对文件操作

    1.1文件夹创建-复制-移动-重命名-删除1.创建文件夹mkdir zjbdir 2.复制文件/文件夹复制文件到:当前目录cp -r zjbdir  zjbdir201600819复制文件到:当前目录 ...

随机推荐

  1. Customize Web Sessions List

    To customize Fiddler's Web Sessions List, add rules using FiddlerScript to the OnBeforeRequest funct ...

  2. Knockout学习之监控属性

    监控属性 Knockout包含以下三个核心特性: 1.监控属性和依赖跟踪 2.显式绑定 3.模板 下面我们将学习这三点中的第一点,在这之前我们先研究下MVVM模式和视图模型的概念. MVVM和视图模型 ...

  3. SSH黄金参数

    ssh -o ConnectTimeout=3 -o ConnectionAttempts=5 -o PasswordAuthentication=no -o StrictHostKeyCheckin ...

  4. Photoshop CS6 操作记录

    全局快捷键 橡皮 E 画笔 B 魔棒工具 W 钢笔工具 P 选区工具 M 移动画布 按住Space后鼠标拖动 放大缩小画布 Ctrl+-, Ctrl++ 调出/收回标尺 Ctrl+R 调整画笔大小 [ ...

  5. 解决CSS的position:absolute中left效果

    有时候css中设置了position:absolute,left:100px,但是如果我们不想要这个left怎么办呢,当然你直接删除就可以,但是如果是框架的css,你直接删除就有问题了,这时候该怎么办 ...

  6. ThinkPHP学习(一)

    大体看了一下,觉得ThinkPHP真是一个不错的框架.我个人认为使用框架最大的好处是:它给你做了很多事情,而且做得很好! ThinkPHP目前版本到了3.2,没敢用最新的,使用3.1作为学习目标,因为 ...

  7. 使用Servlet发布WebService

    首先感谢熔岩的文章: http://lavasoft.blog.51cto.com/62575/227988 1.Eclipse安装上tomcat插件,http://www.eclipsetotale ...

  8. JavaScript调用App原生代码(iOS、Android)通用解决方案

    实际场景 场景:现在有一个H5活动页面,上面有一个登陆按钮,要求点击登陆按钮以后,唤出App内部的登录界面,当登录成功以后将用户的手机号返回给H5页面,显示出来.这个场景应该算是比较完整的一次H5中的 ...

  9. POJ 2676 Sudoku (DFS)

    Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11694   Accepted: 5812   Special ...

  10. 转载:windiws server 2008R2 IIS7.5 设置win7 IIS7设置,文件夹权限配置,Authenticated Users,支持asp temp

    第一步,进入控制面板,点击程序图标 第二步,点击打开或关闭Windows功能 第三步,勾选Internet信息服务全部功能,或根据需要,点击确定,安装 第四步,进入控制面板,点击管理工具 第五步,点击 ...