tar: файл изменился во время чтения
Я используюmake
а такжеtar
для резервного копирования. При выполнении make-файла команда tar показываетfile changed as we read it
, В этом случае,
--ignore-failed-read
не помогает Я использую tar 1.23 в MinGWЯ только что изменил свой компьютер на WIN7 64 бит. Скрипт хорошо работает в старом 32-битном WIN7. Но версия tar не такая новая, как 1.23.Как я могу остановить предупреждение tar, чтобы остановить мое резервное копирование после предупреждения?
Edit-2: это может быть причиной
Как я уже говорил выше, сценарий оболочки bash хорошо работал на моем старом компьютере. По сравнению со старым компьютером,msys
версия отличается. Так же и версия команды tar. На старом компьютере tar - 1.13.19, а на новом - 1.23. Я скопировал старую команду tar, не копируя ее зависимость msys-1.0.dll, на новый компьютер и переименовал ее в tar_old. И я также обновил команду tar в сценарии оболочки и запустил сценарий. Тогда все в порядке. Итак, казалось, что проблема в команде tar. Я уверен, что нет никаких файлов, измененных при тарировании. Это ошибка для команды tar в новой версии? Я не знаю.
Edit-1: добавьте больше деталей
Резервное копирование вызывается сценарием оболочки bash. Он сканирует целевой каталог и создает make-файл, затем вызывает make, чтобы использовать команду tar для резервного копирования. Далее следует типичный make-файл, созданный сценарием оболочки bash.
#--------------------------------------------
# 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. Вот почему мне показалось странным, что появилось предупреждение.