Linux命令之文件搜索

locate  文件名

  locate只能搜索文件名,不能搜索文件大小。搜索速度快。

  locate并不会搜索到那些新加入的文件。新加入文件后,使用updatedb,更新数据库后,再使用locate搜索。

  updatedb会遵循/etc/updatedb.conf中的规则来更新数据库。

[root@shizhan ~]# vi /etc/updatedb.conf

PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp"

yes表示遵循该规则:PRUNENAMES :不更新该文件后缀的文件。PRUNEPATHS :不更新这些目录下的文件。

所以,向/etc中新建一个文件cang,再更新搜索,也是搜索不到的。

whereis   搜索系统命令的位置,以及帮助文档。

which    搜索系统命令的位置,若有别名则显示别名。

[root@shizhan ~]# which ll
alias ll='ls -l --color=auto'     //别名。。
/usr/bin/ls

系统命令会省略前面的路径,PATH 定义的就是系统搜索命令的路径 。

find    [搜索范围]     [搜索条件]

搜索范围:/   全部   。。/root。。。

搜索条件: -name   install.log    按名字搜索     这里还有通配符   。-name  install.*   任意内容

        -name ab?      ?匹配一个字符

        -name ab[cd]   匹配中括号中任意一个字符   即abc   abd都行。

    -iname   install.log     按文件i节点查找

    -user root    按所有者查询

    -nouser    没有所属所有者的文件

    -mtime  +10  查找十天前修改的文件。

        -10   十天内

        10   10天当天

    -atime   文件访问时间

    -ctime   改变文件属性

    -size   25k   大小为25k

        +25k   大于25k

        -25k    小鱼25k

        M  大写,k小写。

    -size +25k  -a  -size -50k   大于25k而且小于50k

      -a     and    与,都要满足

      -o    or      或   满足一个就行

    -size  +25k -a -size -50k   -exec  ls -lh {} ;   逗号也有

      执行完前面以后,对前面所有结果执行后面操作。

  grep [选项] 字符串   文件名   在文件中搜索符合要求的字符串

        -v   不包含该字符串

        -i  忽略大小写

[root@shizhan ~]# grep "first" anaconda-ks.cfg
# Run the Setup Agent on first boot
firstboot --enable

cat :  可以查看文件内容

原文地址:https://www.cnblogs.com/xiaolovewei/p/8647318.html