Linux常用命令(1)

查找文件:locate、find、grep

locate-->快速查找

    用于定位要查找的文件,此命令很快,后接需要查找的文件名即可

    也可以用正则表达式

    locate function 列出所有包含function的文件和目录,搜索包含关键字的所有文件和目录

    locate命令不会对实际的整个硬盘进行查找,而是在文件的数据库里查找记录

    对于刚创建不久的文件,因为他们还没被收录进文件数据库,因此locate命令就找不到其索引

    Linux系统一般每天会更新一次文件数据库,也可以使用updatedb命令强制系统立即更新文件数据库

    updatedb命令只能由root用户执行

find -->深入查找,可以对每个找到的文件做后续的操作  find 何处 何物 做什么  其中何物即查找什么是必须指定的

    何处:如果没有给出何处,find命令会在当前目录及其子目录中查找

    何物:也就是要查找什么,可以根据文件的名字来查找,也可以根据其大小来查找,也可以根据最近访问的时间来查找

    做什么:找到要的文件后,可以对每个文件做一定的操作,称为“后续处理”,如果不指定这个参数,默认只显示找到的文件

    与locate命令不同,find命令不会在文件数据库中查找文件的记录,而是遍历实际的硬盘;而且find只会查找完全符合何物的字符串表示的文件,而locate会查找所有包含关键字的文件

      根据名字查找:find *syslog           find *syslog*           find / -name "*syslog*"

              根据文件大小查找: find /var -size +10M  查找大于10MB的文件    find /var -size -20G  查找小于20G的文件

              根据文件最近访问时间查找:find -name "*.txt"  -atime -7  七天之内访问过的txt文件

    可以用 -type参数来指定查找的文件类型  -type d:只查找目录类型  -type f:只查找文件类型

    find命令的高级用法:操作查找到结果

    find -name "*.jpg" 等价于 find -name "*.jpg" -print  格式化打印printf

    删除查找到的文件: find -name "*.jpg" -delete

    调用命令:-exec参数,后接命令        find one -name "*.txt" -exec chmod 600 {} ;

    这个操作不必用双引号括起来,{}会用查找到的每个文件来替换,;是必须的结尾

    递归查找:find . -name "*.xml"

grep-->筛选数据

    Globally search a Regular Expression and Print 在文件中查找关键字,并显示关键字所在的行

    grep      要搜索的文本/字符串      要搜索的文件

    默认情况下,grep命令是区分大小写的

    -i:忽略大小写         grep -i path /etc/profile

    -n:显示行号,显示搜索到的文本所在的行号        grep -n path /etc/profile

    -v:只显示文本不在的行        grep -v path /etc/profile

    -r:在所有子目录和子文件中查找      grep -r "Hello World" folder/

    -E:使用正则表达式

    grep -E ^path /etc/profile

    grep -E [Pp]ath /etc/profile

原文地址:https://www.cnblogs.com/liushoudong/p/12494651.html