文件查找与打包压缩
内容目录
一、文件查找工具
1. locate
:快速查找工具
- 基于数据库
/var/lib/mlocate/mlocate.db
,更新不及时; - 使用前建议运行
updatedb
更新数据库(需要 root 权限);
locate filename
示例:
locate passwd
2. find
:功能全面的查找工具
常用语法
find [起始路径] [匹配条件] [处理动作]
常用匹配条件:
条件 | 含义 |
---|---|
-name "*.txt" | 按文件名匹配 |
-type f/d | f:文件, d:目录 |
-size +10M | 大于 10MB |
-mtime -3 | 修改时间在 3 天内 |
-user 用户名 | 属主为指定用户 |
-perm 777 | 权限为 777 的文件 |
处理动作:
-print
:输出结果(默认);-exec
:对查找到的每个文件执行命令;-delete
:删除匹配项(小心使用);
# 查找当前目录下所有 .log 文件
find . -name "*.log"
# 删除所有 .tmp 文件
find /tmp -name "*.tmp" -delete
# 查找大于 100MB 的文件
find . -type f -size +100M
# 使用 exec 对匹配文件运行命令
find . -name "*.log" -exec rm -f {} \;
3. xargs
:参数批量替换器
将标准输入转为命令行参数,常与 find
搭配使用。
# 删除所有匹配到的 .log 文件(推荐)
find . -name "*.log" | xargs rm -f
# 批量打包指定类型文件
find . -name "*.txt" | xargs tar -czf txt.tar.gz
二、压缩与解压缩工具
1. compress
/ uncompress
- 历史命令,不推荐;
- 生成
.Z
文件。
compress file
uncompress file.Z
2. gzip
/ gunzip
- 常见压缩工具,生成
.gz
文件; - 不能压缩目录,适合文件。
gzip file.txt # 生成 file.txt.gz
gunzip file.txt.gz # 解压
- 带保留原文件的压缩:
gzip -k file.txt
3. bzip2
/ bunzip2
- 压缩比高于 gzip,生成
.bz2
文件;
bzip2 file.log
bunzip2 file.log.bz2
4. xz
/ unxz
- 压缩比更高,但压缩速度较慢;
- 文件扩展名为
.xz
;
xz file
unxz file.xz
5. zip
/ unzip
- 常用于 Windows 系统;
- 支持压缩多个文件/目录;
zip archive.zip file1 file2
unzip archive.zip
6. zcat
- 查看
.gz
文件内容(无需解压);
zcat file.gz
三、打包与解包工具
1. tar
:打包与配合压缩
常见参数:
参数 | 含义 |
---|---|
-c | 创建打包文件 |
-x | 解包 |
-v | 显示过程 |
-f | 指定文件名 |
-z | 调用 gzip |
-j | 调用 bzip2 |
-J | 调用 xz |
示例:
# 打包目录
tar -cvf archive.tar mydir/
# 打包并用 gzip 压缩
tar -czvf archive.tar.gz mydir/
# 解压
tar -xzvf archive.tar.gz
2. split
:大文件分割工具
- 将大文件拆分为多个小文件;
- 默认以 1000 行为单位分割,可使用
-b
指定字节数;
split -b 10M bigfile.iso part_
# 恢复合并(以 cat 为例)
cat part_* > bigfile.iso
四、小结
- 使用
locate
查找快捷,find
功能更强; xargs
可提升处理效率;- 打包首选
tar
,压缩可选gzip/xz/zip
; - 多个工具可组合使用,如:
find . -name "*.log" | tar -czvf logs.tar.gz -T -
- 压缩日志、备份目录、文件分发常用场景需掌握。