我正在使用make
和tar
备份。执行makefile时,tar命令显示file changed as we read it
。在这种情况下,
- 警告出现时tar包还可以
- 但它会停止tar命令以进行以下备份
- 显示警告的文件实际上并没有改变-出现警告真的很奇怪
- 显示警告的文件是随机出现的,我的意思是,每次我运行makefile时,显示警告的文件都是不同的
--ignore-failed-read
没有帮助。我在MinGW中使用tar 1.23- 我只是将计算机更改为WIN7 64位。该脚本在旧的WIN7 32位上运行良好。但是tar版本并不像1.23那样新。
如何停止tar的警告,以在警告之后停止备份?
编辑2:这可能是原因
正如我上面所说,bash shell脚本在我的旧计算机上运行良好。与旧计算机相比,msys
版本有所不同。tar命令的版本也是如此。在旧计算机中,tar是1.13.19,在新计算机中是1.23。我复制了旧的tar命令,而没有将其依赖项msys-1.0.dll复制到新计算机上,并将其重命名为tar_old。我还更新了shell脚本中的tar命令并运行了该脚本。那一切都很好。因此,问题似乎出在tar命令上。我确定去皮时没有任何文件更改。新版本中的tar命令有问题吗?我不知道。
编辑1:添加更多详细信息
备份由bash shell脚本调用。它扫描目标目录并生成makefile,然后调用make以使用tar命令进行备份。接下来是bash shell脚本构建的典型makefile。
#--------------------------------------------
# backup VC
#--------------------------------------------
# the program for packing
PACK_TOOL=tar
# the option for packing tool
PACK_OPTION=cjvf
# M$: C driver
WIN_C_DIR=c:
# M$: D driver
WIN_D_DIR=d:
# M$: where the software is
WIN_PRG_DIR=wuyu/tools
# WIN_PRG_DIR=
# where to save the backup files
BAKDIR=/home/Wu.Y/MS_bak_MSYS
VC_FRAMEWORK=/home/Wu.Y/MS_bak_MSYS/tools/VC/VC_framework.tar.bz2
VC_2010=/home/Wu.Y/MS_bak_MSYS/tools/VC/VC_2010.tar.bz2
.PHONY: all
all: $(VC_FRAMEWORK) $(VC_2010)
$(VC_FRAMEWORK): $(WIN_C_DIR)/$(WIN_PRG_DIR)/VC/Framework/*
@$(PACK_TOOL) $(PACK_OPTION) "$@" --ignore-failed-read /c/$(WIN_PRG_DIR)/VC/Framework
$(VC_2010): $(WIN_C_DIR)/$(WIN_PRG_DIR)/VC/VS2010/*
@$(PACK_TOOL) $(PACK_OPTION) "$@" --ignore-failed-read /c/$(WIN_PRG_DIR)/VC/VS2010
如您所见,tar包存储在〜/ MS_bak_MSYS / tools / VC / VC_2010.tar.bz2中。我在〜/ qqaa中运行脚本。~/MS_bak_MSYS
从tar命令中排除。因此,我正在创建的tar文件不在我尝试放入tar文件的目录内。这就是为什么我对发出警告感到奇怪。