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,

Das Teerpaket ist in Ordnung, wenn die Warnung angezeigt wirdDer Befehl tar für die folgende Sicherung wird jedoch gestopptDie Datei, in der die Warnung angezeigt wird, ändert sich tatsächlich nicht - es ist wirklich seltsam, dass die Warnung angezeigt wirdDie Dateien, die die Warnung anzeigen, werden zufällig angezeigt. Ich meine, jedes Mal, wenn ich mein Makefile ausführe, sind die Dateien, die die Warnung anzeigen, unterschiedlich--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.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage