在linux系统中,文件类型不是由文件扩展名称决定。 Linux系统中有哪些类型文件: 普通文件 -文本文件(可读可写)、二进制文件也叫命令文件 、 数据文件也叫压缩文件 目录文件 d 链接文件 l 设备文件 b (block)存储设备文件 /dev/sda1 c (charset)字符流文件 /dev/urandom s (socket) 网络套接字文件 ??? ·和文件类型相关命令操作: (1)如何在系统中找寻文件信息 方法一:找寻命令文件信息 (which cp) (whereis cp)相对更全一点 方法二:根据文件名称查找到所在路径 locate+名称 updatedb实时更新 locate --> 前提:每次使用命令前 更新或者创建数据库文件 updatedb 数据库文件 ==宿舍名单册 名字信息 入住房间 张三李四 009 oldboy.txt /oldboy(走了 每换名单) oldboy.txt /oldgirl yum install -y mlocate (下载locate) 没有信息-->缺少数据库文件 数据不全-->数据库文件没有更新
find 命令语法信息 find 查找区域目录信息 搜索条件
搜索的条件: oldboy是大目录
1) 根据文件类型搜索数据 -type
find /oldboy -type f/d/l/c/b/s
- 根据文件名称搜索数据 -name
find /oldboy -name "dog" find /oldboy -iname "oldboy.txt" 3)根据文件大小搜索数据 find /oldbuy -suze +10k 寻找大于10K的文件 find /oldbuy -suze -1G 寻找小于1G的文件 find /oldbuy -suze 10 寻找大小正好是10k的文件
补充:find命令根据大小查找数据单位信息 默认单位为:b----block 一个‘b’ 等于512个字节 ‘c’ for bytes最小的单位 (字节) ‘w' for two-byte words 以两个字节作为一个单位进行查找 ‘k’ for kylobytes (kb为单位) ’mb‘ for Megabytes (mb 为单位) ’G‘ for Gigabytes (GB为单位)
4)根据文件路径深度(层次)查找数据 # find /oldboy -maxdepth 1 -name "oldboy01.txt" /oldboy/oldboy01.txt -maxdepth --- 查找数据最深深度
# find /oldboy -mindepth 2 -name "oldboy01.txt"
/oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy01.txt
/oldboy/oldboy01/oldboy02/oldboy03/oldboy01.txt
/oldboy/oldboy01/oldboy02/oldboy01.txt
/oldboy/oldboy01/oldboy01.txt
-mindepth --- 查找数据最小深度, 从最小深度继续向下查找
5)根据条件逻辑查找数据
-
请找出文件大小是大于6k 并且 还要找出文件名称是有oldboy开头的文件 并且逻辑关系 -a find/Oldboy -size +6k -a -name “oldboy*” find/Oldboy -size +6k -name “oldboy*” find -size +6 | grep "^./oldboy"
- 请找出文件名称是oldboy开头的文件 和 .txt结尾的文件 -o 或者意思 find /oldboy -name “oldboy*” -o -name ”*.txt” 6)根据时间条件查找数据 find /oldboy -mtime +7 查找距离当前时间7天以前的
find /oldboy -mtime -7 查找距离当前时间7天以内的
find /oldboy -mtime 7 查找距离当前时间之前正好7天的数据
过去--- +7 ------- 7 --------- -7 -----当前时间
<==七天以前
| <==正好七天
| <==七天以内
find ./ 当前目录进行
Find /var / -mmin +1 ---- 一分钟之前的消息 Find /var / -mmin -1 ----- 一分钟以内的消息 Find /var / -mmin 1 ----- 刚好一分钟的消息
proc task 俩目录是在内存中的
利用find命令可以实现批量处理数据 环境准备: touch oldboy{01..10}.txt touch oldgirl{01..10}.jpg touch olddog{01..10}.avi A、批量删除数据 将oldboy开头的数据进行批量删除 步骤一: 先将要处理数据找出来 步骤二: 将数据如何批量删除 方法一: 利用find命令参数 find /oldgirl/ -name "oldboy*" -delete 方法二: 利用管道+xargs命令进行处理 find /oldgirl/ -type f -name "olddog*" | xargs rm xargs
- 将产生信息进行转换, 转为命令可以识别的 参数或者对象信息
- 可以进行分组操作/将分组进行整合 [root@oldboy69 oldgirl 00:40:41]# xargs < test.txt (01 02 03 04 05 06 07 08 09 10) [root@oldboy69 oldgirl 00:41:20]# xargs -n3 < test.txt 01 02 03 04 05 06 07 08 09 10
方法三: 利用反引号进行处理
rm -f find /oldgirl/ -type f -name "olddog*"
方法四: 利用find命令特殊参数 -exec
find ./ -type f -name "oldboy*" -exec rm -f {} ;
#find /oldgirl/ -type f -name "oldboy*" -exec rm {} ; -o -type f -name "oldgirl*" -exec rm {} ;
- 批量删除指定数据
-
查看目录文件结构信息 tree tree -L 3 --- 指定查看目录层级信息 tree -d --- 只查看完整目录结构信息
-
如何压缩数据信息 tar --- 压缩数据/解压数据 将数据进行压缩: 命令语法: tar zcvf 生成压缩包路径/压缩包.tar.gz 需要进行压缩数据01 需要进行压缩数据02 ..
参数说明: z --- 数据压缩方式 gzip c --- 创建一个压缩文件 v --- 显示压缩过程 f --- 指定压缩包路径信息 将链接文件进行压缩处理时: tar zcvhf 生成压缩包路径/压缩包.tar.gz 需要进行压缩链接文件 h --- 指定压缩链接文件所指定源文件 将数据进行解压: 命令语法: tar xvf 压缩包路径/压缩包.tar.gz (默认解压, 会将数据解压到当前路径) 参数说明: x --- 提取压缩包中的数据(解压) 指定解压数据路径信息: tar xf ./sys_backup.tar.gz -C /oldboy 对压缩包中的数据进行查看 tar tf sys_backup_2019-12-13.tar.gz t --- 查看列表显示压缩包中的数据信息=================================================
补充: 提示信息作用:tar: Removing leading `/' from member names【加p 就相当于替代源文件】 解释: 将绝对路径 / 根目录信息进行移除 , 压缩数据 作用: 对系统数据信息进行保护 不想保护数据, 想解压时将源数据进行覆盖: 压缩时: tar zcvPf ---保留住根目录 解压时: tar xPf ---保留住根目录 ================================================= 04. 课程知识总结说明: 1) 命令说明: find 2) 命令说明: tree 3) 命令说明: tar + 自动