我尝试使用tar
以递归方式压缩.lammpstrj
目录树中所有带有扩展名的文件,从路径存储在变量中的目录开始home
。home
包含包含我的命令的脚本和 57 个子目录,每个子目录包含一对名为和tar
的子子目录。每个或目录包含一个文件。我用来完成此任务的循环是:Soft_Pushoff
Equilibrium_NVT
Soft_Pushoff
Equilibrium_NVT
.lammpstrj
for index in $(seq 1 57)
do
cd $home/$index/Soft_Pushoff/
file=`find ./ -mindepth 1 -maxdepth 1 -name "*.lammpstrj" -print`
tar cvf - ./$file | gzip -9 - > $file.tar.gz
cd $home/$index/Equilibration_NVT/
file=`find ./ -mindepth 1 -maxdepth 1 -name "*.lammpstrj" -print`
tar cvf - ./$file | gzip -9 - > $file.tar.gz
done
当它扫描 的 57 个子目录之一时home
,此部分代码通常会打印:
././equilibration_nvt.lammpstrj
././soft_pushoff.lammpstrj
到终端。然而,在 3 个不同的实例中,这段代码打印出来的内容如下:
././equilibration_nvt.lammpstrj
././soft_pushoff.lammpstrj
./
./time.txt
./soft_pushoff.restart.10000
./equilibration_nvt.lmp
./.tar.gz
tar: ./.tar.gz: file changed as we read it
./equilibration_nvt_pitzer.sh
./eps.txt
././soft_pushoff.lammpstrj
././equilibration_nvt.lammpstrj
我使用的命令不tar
应该对“标记”的文件进行操作tar
,所以我很困惑为什么它们会与警告消息一起列出tar: ./.tar.gz: file changed as we read it
?此外,这些文件实际上并没有像tar
对文件进行操作那样发生变化.lammpstrj
。如何解释此警告消息?最重要的是,我能否相信.lammpstrj.tar.gz
我的命令写入的文件都tar
没有损坏,尤其是与此警告消息相关的文件?
如果这相关的话,我的脚本正在远程服务器上运行。.lammpstrj
我尝试压缩的文件大小高达 15.2 Gb。我的脚本在此远程服务器上运行大约需要 2.5 天。