安装多线程压缩程序 pigz
yum -y install pigz
tar多线程压缩解压
tar --use-compress-program=pigz -h -cvpf Homo_sapiens.GRCh38.dna.toplevel.tar.gz *
实测,4核的机器,2G文件用了不到1分钟
tar --use-compress-program=pigz -cvpf b.tar.gz ./*
top看到系统CPU使用率是390%+
41G 的文件,4核的机器,内存16G
tar --use-compress-program=pigz -xvpf hs_sale_1126.tar.gz
top命令看到CPU使用率没有压缩的时候那么高,在50% - 80%之间
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18241 root 20 0 38676 724 576 S 84.3 0.0 3:34.92 pigz
遇到单个大文件的时候,CPU使用率会比较高一点
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18241 root 20 0 38676 724 576 R 126.2 0.0 6:47.93 pigz
最后发现只用了40分钟就解压完,之前用了超过2个半小时
tar 命令提供了多种方式来排除不需要打包的文件和目录。以下是几种常用的方法:
# 排除单个文件或目录 tar -czvf archive.tar.gz --exclude="file.txt" folder/ tar -czvf archive.tar.gz --exclude="node_modules" project/ # 排除多个文件或目录 tar -czvf archive.tar.gz --exclude="*.log" --exclude="temp" --exclude=".git" folder/ # 使用模式匹配 tar -czvf archive.tar.gz --exclude="*.tmp" --exclude="cache/*" source/
首先创建一个排除列表文件:
# 创建排除列表文件 echo "*.log" > exclude-list.txt echo "temp/" >> exclude-list.txt echo ".git/" >> exclude-list.txt echo "node_modules/" >> exclude-list.txt # 使用排除列表文件 tar -czvf archive.tar.gz -X exclude-list.txt project/
# 排除所有日志文件 tar -czvf archive.tar.gz --exclude="*.log" folder/ # 排除备份文件 tar -czvf archive.tar.gz --exclude="*~" --exclude="*.bak" folder/
tar -czvf archive.tar.gz --exclude=".*" folder/
# 打包项目目录,但排除常见的开发文件和目录 tar -czvf project-backup.tar.gz \ --exclude="node_modules" \ --exclude=".git" \ --exclude="*.log" \ --exclude="dist" \ --exclude=".DS_Store" \ project-folder/
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
