备份压缩 VASP 计算文件或目录的小脚本
在使用 VASP 进行计算时,程序会产生大量输出文件,如 OUTCAR、CHGCAR、vasprun.xml 等,这些文件往往体积较大,容易迅速占满存储空间。为了节省磁盘资源并便于后续归档或转移,我们通常需要对这些计算结果进行压缩备份。在这里,大师兄分享一个非常实用的Bash小脚本,对文件或者文件夹进行压缩。(注意:压缩后源文件会自动删掉)。
1)脚本功能说明
该 Bash 脚本用于自动化处理指定的文件或目录,实现以下功能:
- 判断输入路径是否存在;
- 判断输入为文件还是目录;
- 对输入内容进行
.tar.gz压缩打包; - 压缩成功后自动删除原始文件或目录;
- 输出备份完成的提示信息。
2)使用方法
在终端中执行如下命令:
bash backup.sh XXX
其中 XXX 可以是某个 VASP 输出的目录,也可以是单个文件。例如:
./backup.sh calc1/OUTCAR
./backup.sh calc1/
执行后将生成对应的压缩文件,如:
- 对
OUTCAR文件会生成OUTCAR.tar.gz并删除原始文件; - 对目录
calc1/会生成calc1.tar.gz并删除原始目录及其全部内容。
注意事项
- 脚本自动判断输入是文件还是目录;
- 被压缩的文件或目录在压缩成功后会被永久删除,请确保不再需要原始版本或已另行备份;
- 压缩格式为标准的
.tar.gz,可使用tar -zxvf 文件名.tar.gz解压。
3)效果展示
qli@qli:~/test$ ll -h
total 157M
-rwxrwxrwx 1 qli qli 157M Jul 9 10:48 OUTCAR*
qli@qli:~/test$ bk.sh OUTCAR
OUTCAR
Backup complete for file: OUTCAR -> OUTCAR.tar.gz
qli@qli:~/test$ ll -h
total 52M
-rwxrwxrwx 1 qli qli 52M Jul 9 16:03 OUTCAR.tar.gz*
qli@qli:~/test$ cd ../
qli@qli:~$ du -sh test
52M test
qli@qli:~$ bk.sh test/
test/
test/OUTCAR.tar.gz
Backup complete for directory: test -> test.tar.gz
在本例子中,我们把一个156M的OUTCAR文件压缩到了52M。节省了100M的空间。 由于test文件夹中的OUTCAR已经被压缩,我们再压缩这个文件夹的时候,已经没有提升的空间了,仅为展示一下本脚本可以用来压缩文件和文件夹的功能。
4) 脚本下载以及请大师兄喝咖啡。
点击下载: bk.sh
