一、基本压缩与解压
1. 压缩(不包含目录结构、不显示过程信息)
tar -czf archive.tar -C /path/to/files .
说明:
-c:创建新 tar 包-z:使用 gzip 压缩-f:指定文件名-C:切换目录后再执行压缩.:表示压缩该目录下所有内容,但不包含目录本身
2. 解压到指定目录(不显示信息)
tar -xzf archive.tar -C /destination/path
二、网站备份示例
1. Cloudreve 网站数据备份
压缩:
tar czvf cloudreve-$(date +%Y%m%d).tar.gz /root/cloudreve
解压:
tar -xzvf cloudreve.tar.gz
2. NPM(Nginx Proxy Manager)网站数据备份
压缩:
tar czvf npm-noth-$(date +%Y%m%d).tar.gz /root/docker/npm
解压:
tar -xzvf npm-noth.tar.gz
三、删除 7 天前的备份数据
find /data/backup -name "*.tar.gz" -type f -mtime +6 -exec rm -f {} \;
说明:
-mtime +6:修改时间超过 6 天(也就是保留最近 7 天)
四、解压到指定目录
tar -zxvf cloudreve-$(date +%Y%m%d).tar.gz -C /root/cloudreve
五、打包不包含父目录(常用三种方法)
有时我们希望只打包目录内部的内容,而不是把整个目录包含进去,可以用以下方式:
方法 1:使用 -C 切换目录
tar -zcvf cloudreve.tar.gz -C /root/docker cloudreve
说明:
cloudreve 是目录名,压缩包内会包含 cloudreve 目录,但不会包含 /root/docker。
方法 2:切换到目标目录并打包其内容
tar -zcvf cloudreve.tar.gz -C /root/docker/cloudreve .
说明:
. 表示 cloudreve 目录下的所有内容,而不包含目录本身。
方法 3:进入目录后再压缩
cd /root/docker/cloudreve
tar -zcvf cloudreve.tar.gz *
说明: 只会打包目录中的所有文件,不包含目录名称。