1 文件查找
find [查询的路径] [匹配模式] [匹配规则] [匹配后的处理动作]
-name:按文件名去匹配
-iname 忽略大小写
-type:按文件类型匹配
常见文件类型:
f:普通文件
d:普通文件夹
b:块设备文件
c: 字符设备文件
s:socket文件
l:链接文件
-perm :按文件权限匹配
-maxdepth :指定查找的目录深度
-user :按文件属主匹配
-nouser:查询没有属主的文件
-group :按文件属组匹配
-nogroup:查询没有属组的文件
-size:按文件大小匹配
+ 查询超过n的文件
- 查询小于n的文件
eg: 2 或 2b,会查找出两个块扇区,意味着 512-1024之间的都会被查找
字节(b) : c
双字节(中文) : w
KB : k
MB : 大写的M
GB : 大写的G
-mtime:按文件的修改时间匹配 modify
-ctime:按文件的创建时间匹配 create
-atime:按文件的访问时间匹配 access
+ n 查询n天前的文件
- n 查询n天内的文件
-a:并且
-o:或者
* : 匹配任意数量的任意字符(匹配零个或多个任意字符)
? : 匹配任意一个字符
-exec: 非交互式的 处理 匹配到的内容
-ok : 交互式的 处理 匹配到的内容
-print
-ls
-delete
755:文件夹的默认权限
644:文件的默认权限
删除用户 :userdel
删除用户组 :groupdel
stat
查找案例
find /etc -name "hosts"
find /etc/ -name "ifcfg*"
find /etc/ -name "*.conf"
find /etc/ -name "*host*"
find /etc/ -type f
find /etc/ -type d
find /dev/ -type b
find /dev/ -type c
find /etc/ -name "*nginx*" -type f
find /root/ -perm 755
find /root/ -user test01
find /root/ -nouser
find /root/ -group test
find /root/ -nogroup
find /root/ -mtime +2
find /root/ -ctime -2
find /root/ -atime -2
find /root/ -size +1M
find /root/ -size -1M
find /tmp/ -ctime -3 -type f -exec rm -rf {} \;
-exec :处理查询之后的内容
{} :代表的是查询到的内容、
\; : 固定搭配
find /tmp/ -ctime -3 -type f | xargs -I {} rm -rf {}
find /tmp -ctime -3 -type f -exec mv {} {}.bak \;
find /tmp -ctime -3 -type f | xargs -I {} mv {} {}.bak
xargs :将所有内容格式化成一行
xargs -I {} :将所有内容格式化成一行,且放进{}中,其他命令就可以从{}中取出内容,进行命令执行
因为前一个命令执行的结果可能包含换行,
且将执行结果作为第二个命令参数传递时,命令就不能执行(有些命令执行时,参数不能有换行)
所以可以通过xargs将参数过滤,将换行换成空格
2 打包压缩
打包指的是将多个文件和目录合并为一个特殊文件 然后将该特殊文件进行压缩 最终得到一个压缩包
1.减少占用的体积 2.加快网络的传输
windows: zip、rar(linux不支持)
linux : zip、tar、bzip2、gzip
1.两个系统互通使用,选择 zip
2.压缩包的后缀不重要,但一定要携带 '.'
3.打包压缩通常用于备份文件,文件的名字必须见名知意 且应该带上时间、主机名之类
eg:
1.获取当前时间
date "+%Y_%m_%d_%H_%M_%S"
2.打包压缩
tar -zcvf 2023_06_28_etc_bak.tar.gz /etc/
3.两者合并
tar -zcvf ` date "+%Y_%m_%d_%H_%M_%S"`_etc_bak.tar.gz /etc/
压缩软件
1.gzip
压缩软件,将文件做成一个压缩包,会删除原来的文件,生成一个新的压缩包文件
压缩:gzip [文件路径]
解压:gzip -d [压缩包路径]
gzip不能压缩目录
2.bzip2
压缩软件,将文件做成一个压缩包,会删除原来的文件,生成一个新的压缩包文件
压缩:bzip2 [文件路径]
解压:bzip2 -d [压缩包路径]
bzip2不能压缩目录
gzip 比 bzip2压缩率更大
3.tar 常用
打包文件或目录,不会删除原文件,也不会压缩文件;
但可以跟 gzip 或 bzip2 共同使用,进行打包和压缩
tar [必要参数] [选择参数] [压缩包名称] [原文件或目录]
-f: 指定压缩包的名称
-c: 打包文件
-z: 指定使用gzip压缩,一般使用gzip压缩的文件都以.tar.gz作为扩展名
-j: 指定使用bzip2压缩,一般使用bzip2压缩的文件都以.tar.bz2作为扩展名
-x: 解压,不需要指定压缩包的压缩类型,会自动匹配压缩包的类型自行解压
-v: 显示压缩包压缩或解压的过程
-P: 文件名保留绝对路径,不移除文件名称前的"/"号
-t: 查看压缩包中的内容
-C: 解压到指定目录
tar -zcvf rumenz.tar.gz rumenz.txt
tar -xvf rumenz.tar.gz -C /tmp
tar -tf rumenz.tar.bz2
tar -czvPf /tmp/etc.tar.gz $(find /etc/ -type f | xargs)
$():相当于数学中的括号,优先看括号中的内容,再执行tar
4.zip 常用
压缩文件或文件夹
yum -y install zip unzip
zip [选项] 压缩包名 源文件或源目录列表
-r 递归压缩
-m 将文件压缩之后,删除原始文件
-v 显示详细的压缩过程信息
-q 静默输出,不显示过程
eg: zip -r etc.zip /etc
unzip [参数] 压缩包名
-d 目录名 将压缩文件解压到指定目录下
-n 解压时,不覆盖已经存在的文件
-o 解压时,覆盖已经存在的文件,并且无需用户确认
-l 显示压缩包的列表信息
-v 查看压缩文件的详细信息,包括压缩包中的文件大小、文件名以及压缩比等,但是不解压
-t 检查压缩文件是否正确、完整,但并不解压
zip -r tmp.zip /tmp
unzip tmp.zip
3 管道
用于传输数据,将管道前的命令执行结果,交给管道之后的命令进行处理
|
| xargs :将所有内容格式化成一行
| xargs -I {} :将所有内容格式化成一行,且放进{}中,其他命令就可以从{}中取出内容,进行命令执行
因为前一个命令执行的结果可能包含换行,
且将执行结果作为第二个命令参数传递时,命令就不能执行(有些命令执行时,参数不能有换行)
所以可以通过xargs将参数过滤,将换行换成空格
find /tmp/ -ctime -1 -type f | xargs -I {} rm -rf {}
find /etc/ -type f | xargs -I {} cp -r {} /tmp/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构