在执行 makefile 时,tar 命令显示 file changed as we read it
,
--ignore-failed-read
没有帮助。我在 MinGW 中使用 tar 1.23我如何停止焦油的警告,以停止我的备份后,警告?
编辑 -2 : 这可能是原因
如前所述,bash shell 脚本在我的旧计算机上运行良好。与老式计算机相比,msys
版本有所不同。Tar 命令的版本也是如此。在旧计算机中,tar 是1.13.19,在新计算机中是1.23。我复制了旧的 tar 命令,而没有将其依赖项 msys-1.0.dll 复制到新计算机,并将其重命名为 tar _ old。我还更新了 shell 脚本中的 tar 命令并运行了该脚本。那就没事了。因此,问题似乎出在 tar 命令上。我确信在打孔时没有任何文件被更改。这是新版本中 tar 命令的 bug 吗?我不知道。
编辑 -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 中运行脚本。从 tar 命令中排除 ~/MS_bak_MSYS
。因此,我创建的 tar 文件不在我试图放入 tar 文件的目录中。这就是为什么我觉得这个警告很奇怪。