Ich benutze make
und tar
zu sichern. Bei der Ausführung von makefile wird der Befehl tar angezeigt file changed as we read it
. In diesem Fall,
- Das Teerpaket ist in Ordnung, wenn die Warnung angezeigt wird
- Der Befehl tar für die folgende Sicherung wird jedoch gestoppt
- Die Datei mit der Warnung ändert sich nicht - es ist wirklich seltsam, dass die Warnung angezeigt wird
- Die Dateien, in denen die Warnung angezeigt wird, werden zufällig angezeigt. Ich meine, jedes Mal, wenn ich mein Makefile ausführe, sind die Dateien, in denen die Warnung angezeigt wird, unterschiedlich
--ignore-failed-read
hilft nicht. Ich verwende Teer 1.23 in MinGW- Ich 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 Teers stoppen, um meine Sicherung nach der Warnung zu stoppen?
Edit-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 ist die msys
Version anders. So ist 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 tar-Befehl kopiert, ohne seine Abhängigkeit msys-1.0.dll auf den neuen Computer zu kopieren, und 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 wird. Ist es ein Fehler für den Befehl tar in der neuen Version? Ich weiß es nicht.
Edit-1 : Weitere Details hinzufügen
Die Sicherung wird von einem Bash-Shell-Skript aufgerufen. Es durchsucht das Zielverzeichnis und erstellt ein Makefile. Anschließend wird der Befehl make aufgerufen, um den Befehl tar für die Sicherung zu verwenden. Es folgt ein typisches Makefile, das vom 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 können, wird 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.