find命令
用途: 查找文件
用法: find 路径 选项 参数
常用选项:
1 | -print: 以`\n`作为每个匹配项文件名的分隔符(每行一个文件名),默认输出选项就是(-print) |
根据文件类型查找
使用选项参数-type
可以查找指定类型的文件。
文件类型:
- f:普通文件
- l:符号链接
- d:目录文件
- c:字符设备
- b:块设备
- s:套接字
- p:FIFO
eg.find . -type f -user test
查找当前目录下所有test用户的文件
根据时间查找
linux系统有三种时间戳:访问时间、修改时间、变化时间。
根据访问时间查找可以通过-atime 天数
或-amin 分钟数
两个不同单位选项来查找。
根据修改时间查找可以通过-mtime 天数
或-mmin 分钟数
两个不同单位选项来查找。
根据变化时间(文件属于源修改时间)查找可以通过-ctime 天数
或-cmin 分钟数
两个不同单位选项来查找。
在根据时间查找时,时间戳前加 -
表示小于时间戳时间长度,+
表示大于时间戳长度 什么都不加表示等于
eg.
find . -type f -atime -7
查找当前目录最近七天内被访问过的所有文件
find . -type f -atime 7
查找当前目录恰好在七天前被访问过的所有文件
find . -type f -atime +7
查找当前目录超过七天前被访问过的所有文件(即最近七天没有被访问)
根据文件大小搜索
文件单元前加+
表示大于;加-
表示小于;不加代表等于。
文件大小单元:
- b:块(512字节)
- c:字节
- w:字(2字节)
- k
- M
- G
eg.find . -type f -size 2k
查找当前目录等于2k的文件
sort命令
用途:sort主要是对输入进行排序
常用参数:
1 | -c:检查文件是否已经有序 |
eg.
假设unsort.txt文件数据为
1 | aaa:30:1.6 |
对第二列(从1开始)按照数字大小排序
sort -nk 2 -t: unsort.txt
命令解析:-k 2
设置第二列为键值,-t:
设置列分隔符为:
输出结果:
1 | bbb:10:2.5 |
uniq命令
用途:用于报告或忽略文件中的重复行,一般与sort结合使用。
比较常用参数:
1 | -c:在每列旁边实现重复出现的次数 |
uniq命令在使用-u
、-d
、-c
参数时要求输入必须是有序的这也是为什么一般和sort结合使用的原因。
eg.
删除重复行:
1 | sort file.txt | uniq |
统计各行次数:
1 | sort file.txt | uniq -c |
显示只出现过一次的行:
1 | uniq -u sorted.txt sorted.txt 已排序 |
显示出现多次的行:
1 | uniq -d sotred.txt |