前言:

先说一下遇到的场景:前段时间在配合做 DevOps,组内有块代码是 php 的,需要用 tar 命令打包归档上传到 nexus 库,后来发现解压出来的包居然缺失了隐藏文件(配置文件),查了一下资料解决了,这里记录一下。

1. tar 命令常规用法
-c	创建新的档案文件
-C	指定到目录。注意:该目录必须存在
-f	指定打包的文件名。在f之后要立即接打包文件名!不能再加参数!
-x	解压
-O	将文件解压到标准输出
-p	使用原文件的原来属性
-P	创建归档文件,使用绝对路径
-t	列出档案文件中的内容
-r	向压缩归档文件末尾追加文件
-u	更新原压缩包中的文件
-v	显示详细过程
-z	使用gzip压缩,一般格式为xx.tar.gz或xx. tgz
-Z	有compress
-j	使用bzip2压缩,一般格式为xxx.tar.bz2
--exclude	在压缩过程中,排除某个文件
--remove-files	在完成打包后,删除原文件夹

一定要注意大小写
归档:

tar -cvf 2020-08-03_log.tar *.log

压缩归档:

tar -czvf 2020-08-03_log.tar.gz *.log

解压缩:

tar -xvf 2020-08-03_log.tar

解压缩到指定目录:

tar -xvf 2020-08-03_log.tar -C /var/log/
2.归档隐藏文件

当前文件夹下包含隐藏文件的所有文件归档到 php_project.tar:

tar -cvf php_project.tar * .[!.]*
3.归档某文件夹下的所有文件,不包含这个文件夹

eg, 归档 log 文件夹下的所有文件
常规都是下面这么写

tar -cvf log.tar /var/log/*

但是归档以后再解开,会发现是一个三级目录:var/log/*
前面两个目录是不需要的,怎么整?
方法一,cd 进去归档

cd /var/test;
tar -cvf /home/log.tar *

方法二

tar -cvf log.tar -C /var/log/ .
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐