find
(1)用法
find [options] [查找起始路径] [查找条件] [处理动作]
查找起始路径:制定具体搜索目标起始路径;默认为是当前目录
查找条件:根据文件名、大小、类型、从属关系、权限等标准进行;默认指定路径下所有文件
处理动作:对符合查找条件的文件做出的操作,例如删除;默认为输出至标准输出
查找条件
(1)根据文件名查找
-name ‘zzz’
-iname ‘pattern’
(2)支持glob风格的通配符
*,?,[], [^]
-regex pattren:基于正则表达式查找文件,匹配的是整个路径,而非其名
(3)根据文件从属关系查找
- user username #查找属主指定用户的所有文件
- group groupname #查找属组指定组的所有文件
- uid UID #查找属主指定组的所有文件
-gid GID #查找属组指定的GID的所有文件
-nouser #查找没有属主的文件
-nogroup #查找没有属组的文件
(4)type type
f 普通文件
d 目录文件
b 块设备文件
l 符号链接文件
c 字符设备文件
p 管道文件
s 套接字文件
(5)根据文件大小查找
-size [+|-]
常用单位:K,M,G
(6)根据时间戳查找
-atime [+|-]
-mtime
-ctime
(7)以分钟为单位
-amin
-mmin
-cmin
(8)根据权限查找
-prem [/|-]mode
mode:精确权限匹配
/mode:任何一类用户的全险种的任何一位符合条件即满足
-mode:每一类用户的权限中的每一位同时符合即满足
处理动作
(1)-print 输出至标准输出
(2)-ls 类似于查找到的文件执行“ls -l”命令,输出文件的详细信息
(3)-delete 删除查找到的文件
(4)-fls
(5)-ok COMMAND {} \;
(6)-exec COMMAND {} \;
(7)find | xargs COMMAND
find /var -user root -a -group mail -ls #查找/var目录下属主为root,且属组为mail的所有文件的所有目录
find /usr -not -user root -a not -user bin -a -not -user hadoop ##查找/usr目录下不属于root,bin,或hadoop的所有文件或者目录
find /usr -not \(-user root -o -user bin -o -user hadoop \) -ls #查找/usr目录下不属于root,bin,或hadoop的所有文件或者目录
grep
-i 忽略大小写
-o 仅限是匹配到字符串本身
-v 显示不能被匹配到行的
-E 支持扩展正则
-q 静默模式,不输出任何信息
-A 后n行
-B 前n行
-C 前后各n行
sed
split 分割文档命令
-b 每一输出档案的大小,单位为byte
linux文件系统之indoe,block,superblock
indoe 记录文件属性
block 记录filesystem的整体信息
superblock 记录文件的内容
文件存储在硬盘上,硬盘的最小存储单位叫做扇区sector,每个扇区存储512个字节,8个连续的sector组成block
cut
-b 以字节为单位
-c 以字符为单位
-d 自定义分隔符,默认为制表符
-f 与-d一起使用,指定显示哪个区域
-n 取消分割多字节字符
sort
-f #忽略大小写
-b #忽略最前面的空格部分
-M #以月份的名字来排序
-n #以数字来进行排序
sort -n test2.txt
-r #反向排序
sort -r -k 2 -t “.” test.txt
-u #就是uniq,相同的数据中,仅出现一行
sort -u test.txt
-t #分隔符,默认是用tab键来分割
-k #以哪个区间来进行排序
sort -k 2 -t “.” test.txt
-o #将结果写入到文件而非标准输出
sort -o test.txt test.txt