热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux下搜索文件常用方法

用which命令查找可以知晓文件的绝对路径这个命令比较常用,例如查找bin、python、vim、find、cat的绝对路径root@ip-172-31-8-212:~#which
  • 用which命令查找可以知晓文件的绝对路径

  这个命令比较常用,例如查找bin、python、vim、find、cat的绝对路径

root@ip-172-31-8-212:~# which find /usr/bin/find root@ip-172-31-8-212:~# which bash /bin/bash root@ip-172-31-8-212:~# which python /usr/bin/python root@ip-172-31-8-212:~# which vim /usr/bin/vim

  • whereis查找预先生成的文件列表库中的文件名与相关的文件,格式为:whereis [-bms] 文件名称

    -b:只查找二进制文件

    -m:支叉子帮助文件(查找man目录下的文件)

    -s:支叉子源代码文件

root@ip-172-31-8-212:~# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

  模糊查找,whereis命令很少使用

  •   locate命令查找文件

  locate命令也是通过查找预先生成的文件列表库来告诉用户要查找的文件在哪里,后面直接跟文件名,如果没有此命令,需要进行安装,安装命令如下:

 yum install -y mlocate
  •   使用find命令搜索文件

  此命令是使用较多的一个,格式为:find 【路径】 【参数】

        # linux文件无创建时间
        # Access 使用时间  
        # Modify 内容修改时间  
        # Change 状态改变时间(权限、属主)
        # 时间默认以24小时为单位,当前时间到向前24小时为0天,向前48-72小时为2天
        # -and 且 匹配两个条件 参数可以确定时间范围 -mtime +2 -and -mtime -4
        # -or 或 匹配任意一个条件

        find /etc -name "*http*"     # 按文件名查找
        find . -type f               # 查找某一类型文件
        find / -perm                 # 按照文件权限查找
        find / -user                 # 按照文件属主查找
        find / -group                # 按照文件所属的组来查找文件
        find / -atime -n             # 文件使用时间在N天以内
        find / -atime +n             # 文件使用时间在N天以前
        find / -mtime +n             # 文件内容改变时间在N天以前
        find / -ctime +n             # 文件状态改变时间在N天前
        find / -mmin +30             # 按分钟查找内容改变
        find / -size +1000000c -print                           # 查找文件长度大于1M字节的文件
        find /etc -name "*passwd*" -exec grep "xuesong" {} \;   # 按名字查找文件传递给-exec后命令
        find . -name t* -exec basename {} \;                  # 查找文件名,不取路径
        find . -type f -name "err*" -exec  rename err ERR {} \; # 批量改名(查找err 替换为 ERR {}文件
        find 路径 -name *name1* -or -name *name2*               # 查找任意一个关键字
        find /var/adm -mtime +3 -print                           #为了在/var/adm目录下查找更改时间在3日以前的文件
        find . -newer age.awk ! -newer belts.awk -exec ls -l {} \; #查找更改时间呗文件age.awk新但比文件belts.awk旧的文件
        find /etc -type d -print                                 #查找/etc目录下所有的目录
        find /etc ! -type d -print                                 #查找/etc下除了目录之外的所有类型的文件
        find /etc -type l -print                                 #查找/etc下所有的符号链接文件


实例如下:
find命令实例
简单地使用find命令查找指定目录下的某个文件的方法如下:
#find /etc -name inittab 
/etc/inittab
#在当前目录下,查找名称为inittab的文件:
#find . -name inittab ./inittab
#找出当前目录下,文件名不区分大小写是example的所有文件: 
$find . -iname example 
./example ./Example
#找出当前目录下,目录名是tmp的目录:
$ find . -type d -name tmp 
./tmp
#找出当前目录下所有sh文件:
$ find . -type f -name "*.sh" 
./login.sh ./index.sh
#找出当前目录下,文件权限是777的所有文件: 
$find. -type f -perm 0777
#找出当前目录下,文件权限不是777的所有文件: 
$ find . -type f ! -perm 777
#找出/etc/目录下所有只读文件: 
find . -type f ! -perm /a+w
#找出你账号的主目录下的所有可执行文件:
$ find ~ -type f -perm /a+x
#找出/tmp目录下的.log文件并将其删除:
$find /tmp/ -type f -name "*.log" -exec rm -f {} \;
#找出当前目录下的所有空文件: 
$find . -type f -empty
#找出当前目录下的所有空目录: 
$find . -type d –empty
#找出/tmp目录下的所有隐藏文件: 
$find /tmp/ -type f -name ".*"
#找出/tmp目录下,所有者是root的文件和目录: 
$find /tmp/ -user root
#找出/tmp目录下,用户组是developer的文件和目录:
$find /tmp/ -group developer
#找出你账号的主目录下,3天前修改的文件: 
$ find ~ -type f -mtime 3
#找出你账号的主目录下,30天以前修改的所有文件:
$ find ~ -type f -mtime +30
#找出你账号的主目录下,3天以内修改的所有文件: 
$ find ~ -type f -mtime -3
#找出你账号的主目录下,30天以前60天以内修改的所有文件:
$ find ~ -type f -mtime +30 -mtime -60
#找出/etc目录下,一小时以内变更过的文件: 
find /etc -type f –cmin -60
#找出/etc目录下,一小时以内访问过的文件: 
find /etc -type f -amin -60
#找出你账号的主目录下,大小是50MB的所有文件:
$find ~ -type f -size 50MB
#找出你账号的主目录下,大于50MB小于100MB的所有文件:
$ find ~ -type f -size +50MB -size -100MB
#找出你账号的主目录下,大于100MB的文件并将其删除: 
$ find ~ -type f -size +100MB -exec rm –rf {} \;
 

Linux下搜索文件常用方法


推荐阅读
  • UDP协议开发
    UDP是用户数据报协议(UserDatagramProtocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP协议不同,UD ... [详细]
  • 利用ipv6技术,废旧笔记本变成server
    如果你家的路由器已经get到了ipv6地址,并且你家的电脑也获取了有效的ipv6地址,在广域网的设备可以访问到。那恭喜你,再配合我这个dd ... [详细]
  • 安全3AAuthentication:认证Authorzation:授权Accouting|Audition:审计用户管理用户:UID:0,不一定是root,root的uid非0时 ... [详细]
  • ASP.NET Core WebAPI 开发新建WebAPI项目  转
    转 http:www.cnblogs.comlinezerop5497472.htmlASP.NETCoreWebAPI开发-新建WebAPI项目ASP.NETCoreWebAPI ... [详细]
  • AsyncDisplayKit2.0教程(下)
    AsyncDisplayKit2.0Tutorial:AutomaticLayout原文:AsyncDisplayKit2.0Tutorial:Automatic ... [详细]
  • webpack 配置IP 和端口号
    最近在用webpack搭建本地服务器的时候,因为不想总是用localhost来跑,所以对webpack.config.js进行了配置,如下devServer:{publicPath ... [详细]
  • Redis 外部访问设置
    1、错误原因Redis搭建好后一般都是使用编程语言进行连接调用,默认Redis的设置是不允许外界访问的,连接Redis只能通过本地(127.0.0.1)来连接,而不能使用网络IP( ... [详细]
  • 吴恩达“机器学习”——学习笔记二
    定义一些名词欠拟合(underfitting):数据中的某些成分未被捕获到,比如拟合结果是二次函数,结果才只拟合出了一次函数。过拟合(overfitting):使用过量的特征集合, ... [详细]
  • ARToolKitunity
    ARToolKit为开源的AR库,相对于高通和easyAr有几点特点:1)开源2)识别项目可以动态添加(详细在后)3)识别文件可以本地生成4)目前只能识别图片(目前为.jpg格式) ... [详细]
  • Java工作流引擎关于数据加密流程(MD5数据加密防篡改)
    关键字:驰骋工作流程快速开发平台工作流程管理系统工作流引擎asp.net工作流引擎java工作流引擎.开发者表单拖拽式表单工作流系统流程数据加密md5数据保密流程数据防篡改软加密适 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 1.数据准备#测试数组vectorc(5,34,65,36,67,3,6,43,69,59,25,785,10,11,14)vector##[1]53465366736436959 ... [详细]
  • 这篇文章主要简要记录了对于研发团队工作的质量 ... [详细]
  • Adapter相当于C(Controller,控制器),listView相当于V(View,视图)用于显示数据为ListView提供数据的List,数组或数据库相当于MVC模式中的 ... [详细]
  • #includestdafx.h#includeiostream#includesstream#includemap#includestring ... [详细]
author-avatar
陈柏佩66057
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有