tar: Datei wurde beim Lesen geändert
ich benutzemake
undtar
sichern. Beim Ausführen von makefile wird der Befehl tar angezeigtfile changed as we read it
. In diesem Fall,
--ignore-failed-read
hilft nicht Ich benutze tar 1.23 in MinGWIch habe gerade meinen Computer auf WIN7 64 Bit umgestellt. Das Skript funktioniert gut in alten WIN7 32-Bit. Die tar-Version ist jedoch nicht so neu wie die 1.23.Wie kann ich die Warnung des Tar stoppen, um meine Sicherung nach der Warnung zu stoppen?
Bearbeiten-2: Es könnte der Grund sein
Wie ich oben sagte, funktionierte das Bash-Shell-Skript auf meinem alten Computer gut. Im Vergleich zum alten Computer, demmsys
Version ist anders. Ebenso die Version des Befehls tar. Auf dem alten Computer ist tar 1.13.19 und auf dem neuen Computer 1.23. Ich habe den alten Befehl tar kopiert, ohne die Abhängigkeit msys-1.0.dll auf den neuen Computer zu kopieren, und habe ihn in tar_old umbenannt. Außerdem habe ich den Befehl tar im Shell-Skript aktualisiert und das Skript ausgeführt. Dann ist alles in Ordnung. Das Problem schien also der Befehl tar zu sein. Ich bin sicher, dass beim Tarieren keine Datei geändert wurde. Ist es ein Fehler für den Befehl tar in der neuen Version? Ich weiß es nicht.
Bearbeiten-1: Weitere Details hinzufügen
Die Sicherung wird von einem Bash-Shell-Skript aufgerufen. Es durchsucht das Zielverzeichnis, erstellt ein Makefile und ruft make auf, um den Befehl tar für die Sicherung zu verwenden. Es folgt ein typisches Makefile, das mit dem Bash-Shell-Skript erstellt wurde.
#--------------------------------------------
# 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
Wie Sie sehen, ist das tar-Paket in ~ / MS_bak_MSYS / tools / VC / VC_2010.tar.bz2 gespeichert. Ich führe das Skript in ~ / qqaa aus.~/MS_bak_MSYS
ist vom Befehl tar ausgeschlossen. Die von mir erstellte TAR-Datei befindet sich also nicht in einem Verzeichnis, das ich in die TAR-Datei einfügen möchte. Deshalb fand ich es seltsam, dass die Warnung kam.