tar命令打包 | 查看压缩文件 | 打包时忽略文件 等操作
1.起因
今天下午写阿狸bot的代码的时候,写错了aiofiles
的保存操作
1 | # 正确写法 |
注意这两个函数,一个是json.dump
;一个是json.dumps
就是因为这里写错了,导致bot执行全局变量保存的时候,所有文件都没有成功保存——还直接把本地文件清空了!!!
当时的我是真的欲哭无泪啊,都不知道如何是好
vscode的时间线
功能帮我保存了一部分文件,可是绝大部分文件都是程序生成的,没有经过vscode,其自然也就没有保存历史版本,这可给我整难受了
要不是之前有一个val-bot-test
目录用于代码测试,那就几乎等同于阿狸bot的用户信息全部丢失,最最最最难受的,还是我bot记录了好久的服务器日志啊,本来有3w多cmd的,现在恢复的文件还是几个月前的,数据量少了好多……
唉,不说这些玩意了,今天我们要来康康怎么在linux下用tar
命令打包和压缩文件夹,留作备份!
2.tar命令打包
参考 https://blog.csdn.net/catoop/article/details/40651947
2.1 将整个目录打包
以当前目录下的code文件夹为例
1 | tar -cvf ./code.tar ./code #仅打包不压缩 |
注意,这里的./code.tar
是生成的目标文件,./code
是源路径;目标文件的命名没有要求,命名成tar.gz/tar.bz2
只是一个用于标明的好习惯
2.2 查看压缩包里面的文件
下面的命令是分别查看不同压缩格式的压缩包里面的文件目录的,其会直接在bash打印出来
1 | tar -tvf ./code.tar |
2.3 解压文件
解压的文件会默认存在当前目录
1 | tar -xvf ./code.tar |
2.4 解压一部分文件
假设我们需要解压code.tar
里面test
目录的文件,可以用下面的命令
1 | tar -xvf ./code.tar test |
知道这几个用法,就基本够用了!
2.5 打包的时候忽略一些文件
现在我需要压缩的是code里面的python运行代码,其中会有一个没有用的__pycache_
,我们应该将其忽略,以减小压缩包体积
下面的命令就是忽略code
路径下所有__pycache__
文件或者文件目录
1 | tar -zcvf code.tar.gz --exclude=*__pycache__ code |
注意,忽略的路径后面不需要带/
,否则还是会被打包。比如下面的用法就是错的
1 | tar -zcvf code.tar.gz --exclude=*__pycache__/ code #错误 |
3.一定要多多备份
像我今天出现这样的情况,实在是不应该!
阿狸bot是有vip业务的,vip信息文件的丢失,也很有可能会导致vip用户的丢失。更别提还有广大的普通用户在使用阿狸呢。
平时我知道要在云盘、nas备份自己的代码、笔记、学习资料等等个人文件,却忘记了云服务器上的bot同样需要备份
这下可算是吸取教训了,一次性把所有bot都给备份了!
- 本文标题:【Linux】tar命令打包 | 查看压缩文件 | 打包时忽略文件
- 创建时间:2023-01-16 21:30:16
- 本文链接:posts/4159326627/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!