菜鸟笔记
提升您的技术认知

菜鸟教程

rapidjson 构造数组将函数实现放在头文件中RapidJSON解析和生成Json绝对路径和相对路径gcc 优化选项 -O1 -O2 -O3 -Os 优先级Python求一个整数位数的方法python中判断数字位数的几种方法python计算分位数查看hive的版本如何查看hadoop的版本elasticsearch查看所有indexsublime 列模式 列编辑shell遍历目录下所有文件http-parser解析http报文详解supervisor守护工具配置lnmp为已有站点手动更新ssl证书记录java 最长回文、最长回文子串ssh免密码登录为Linux内核开启BBR加速frp服务开机自启x86架构下,页面大小为什么是4K?如何限制对象只能建立在堆上或者栈上进程间通信的方式SyntaxError: Non-ASCII character '\xe5'TCP 连接半关闭问题ucontext 协程库代码分析python中yield的用法详解为PHP7.0安装redis扩展ucontext 简单协程库ImportError: No module named cv2的完美解决方法HashMap扩容全过程关于HashMap常见面试考点(底层原理+扩容机制)DOS批处理中的字符串处理详解(字符串截取)Linux下如何查找.sh后缀的文件core文件出现“is not a core dump: File format not recognized”的原因和解决方法(看/proc/pid/limits)记一次docker问题定位(perf,iostat等性能分析)Protocol Buffers 2.5.0 安装python 使用thrift序列化与反序列化对象PHP的base64_decode乱码linux中后台运行 java -jarLinux常用命令--文件搜索Linux常用命令--文件基础操作与文件权限变更Linux常用命令--软件包管理之(RPM包管理)Linux常用命令--文件编辑与查看Linux常用命令--文件压缩与挂载Linux常用命令--系统管理Linux常用命令--系统管理之(用户管理、用户组管理)Linux常用命令--系统管理之(进程管理、定时任务、系统监控)Linux常用命令--软件包管理之(服务管理)Linux常用命令--软件包管理之(yum与源码包安装)Linux初窥:Linux下SSH免密码登录配置如何查看CentOS7的版本信息Linux环境变量文件介绍Linux下Tomcat的安装与配置CentOS解决-bash: vim: command not found10 个提高效率的 Linux 命令别名

Linux常用命令--文件搜索

阅读 : 20

find

命令用途:在指定目录下搜索文件或目录。

命令语法:find [搜索范围] [-选项] [匹配条件]

常用选项:

-name:根据文件名(区分大小写)进行搜索;

-iname:根据文件名(不区分大小写)进行搜索;

// 搜索/etc目录下文件名为init的文件或目录
find /etc -name init
// 搜索/etc目录下文件名中包含init的文件或目录
find /etc -name *init*
// 搜索/etc目录下文件名以init开头,后面跟3个其他字符的文件或目录
find /etc -name init???

-size:根据文件的大小(以数据块为单位,1数据块=0.5K=512字节)进行搜索; 

// 搜索/etc目录下文件大小大于100MB的文件
find /etc -size +204800
// 搜索/etc目录下文件大小大于50MB且小于100MB的文件
find /etc -size +102400 -a -size -204800
// 搜索/etc目录下文件大小等于100MB或者文件名以init开头的文件
find /etc -size 204800 -o -name init*

-user:根据文件的所有者进行搜索;

-group:根据文件的所属组进行搜索;

// 搜索/etc目录下文件的所有者为root的文件或目录
find /etc -user root
// 搜索/etc目录下文件的所属组为root的文件或目录
find /etc -group root

-amin:根据文件的访问时间进行搜索;

-cmin:根据文件属性的修改时间进行搜索;

-mmin:根据文件内容的修改时间进行搜索; 

//搜索/etc目录下5分钟之内被访问过的文件或目录
find /etc -amin -5
//搜索/etc目录下5分钟之内属性被修改过的文件或目录
find /etc -cmin -5
//搜索/etc目录下5分钟之内内容被修改过的文件或目录
find /etc -mmin -5

-type:根据文件类型进行搜索(f文件、d目录、l软链接文件);

-inum:根据i节点进行搜索; 

//搜索/etc目录下的软链接文件
find /etc -type l
//搜索/etc目录下文件名以init开头的目录
find /etc -name init* -a -type d
//搜索/etc目录下i节点号为917211的文件
find /etc -inum 917211

-exec/-ok(询问确认):对搜索结果执行操作;  

//搜索/etc目录下文件名以init开头的文件或目录,并显示其详细信息
find /etc -name init* -exec ls -l {} \;
//搜索/etc目录下文件名以init开头的文件,并显示其详细信息
find /etc -name init* -a -type f -ok ls -i {} \;

locate

命令用途:locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

命令语法:locate[-选项][文件名]

常用选项:

-i:不区分大小写; 

//使用locate命令搜索之前,先使用updatedb命令,手动更新数据库
updatedb
// 搜索etc目录下文件路径中包含init(不区分大小写)的文件或目录
locate -i etc/INIT

which

命令用途:在环境变量$PATH设置的目录里查找并显示命令的绝对路径。

命令语法:which[命令名] 

// 查看ls命令的绝对路径
which ls

whereis

命令用途:查询指定命令的二进制文件、源代码文件和man帮助手册文件等相关文件的路径。

命令语法:whereis[-选项][命令名]

常用选项:

-b:只查找二进制文件;

-m:只查找帮助文件;

-s:只查找源代码文件; 

// 搜索ls命令的二进制文件的绝对路径
whereis -b ls
// 搜索ls命令的帮助手册的绝对路径
whereis -m ls

grep

命令用途:grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

命令语法:grep[-选项][匹配条件][文件名]

常用选项:

-i:不区分大小写;

-v:排除指定字串; 

// 搜索etc目录下的inittab文件中包含multiuser (不区分大小写)的行
grep -i multiuser /etc/inittab
// 搜索etc目录下的inittab文件中不以“#”开头的行
grep -v ^# /etc/inittab
// 搜索etc目录下的inittab文件中不以“,”结尾的行
grep -v ,$ /etc/inittab