备份压缩 VASP 计算文件或目录的小脚本

在使用 VASP 进行计算时,程序会产生大量输出文件,如 OUTCARCHGCARvasprun.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

Tip Code