基础支持
- tar 包只归档,不压缩。
解压
解压 xz
xz -d Python-3.6.1.tar.xz
解压 tar 包
tar -xvf Python-3.6.1.tar
解压 tar.xz 包
xz -d Python-3.6.1.tar.xz
tar -xvf Python-3.6.1.tar
解压 tar.gz
tar -xzvf pcre2-10.32.tar.gz
解压指定目录
tar
tar -xvf ./xxxx.tar -C ./xxx目录
unzip
case:unzip 目标文件 -d 解压路径
unzip ~/Downloads/merchant.zip -d ./merchant
查看压缩文件内容
tar -tf xxx.tar.gz
压缩
普通压缩
tar -cvf target.tar source
- 要打包的路径是什么就会从哪个文件开始打包. 一旦写成了
$PWD
这种形式就会从主目录开始打包。tar -cvf target.tar $PWD/source
exclude 排查某个文件
exclude 排除某个目录, 如 venv
, 注意不要加 /
tar --exclude venv -cvf ./hodor.tar ./hodor/
也可以写为:
tar --exclude=venv -cvf ./hodor.tar ./hodor/
踩坑
—exclude 放在后面不生效
tar -cvf ./hodor.tar ./hodor/ --exclude venv
放在
-cvf
后面也不生效
tar -cvf ./hodor.tar --exclude venv ./hodor/
不支持正则表达式,只支持通配符
tar --exclude='*.pyc' --exclude=venv --exclude=.git\
-cvf /Users/yutou/shouxin/sxProject/lighting.tar\
/Users/yutou/shouxin/sxProject/lighting
如果想使用正则表达式,可以先 grep 然后在打包。参考链接:https://serverfault.com/questions/320729/how-to-exclude-files-from-tar-archive-using-regular-expressions
find directory/ -type f -print |\
egrep -v '[0-9]+x[0-9X]+\.jpg' |\
tar cvfz directory.tar.gz -T -