tar: файл изменился во время чтения

Я используюmake а такжеtar для резервного копирования. При выполнении make-файла команда tar показываетfile changed as we read it, В этом случае,

с пакетом tar все в порядке, когда появляется предупреждениено он останавливает команду tar для следующей резервной копиифайл с предупреждением на самом деле не меняется - очень странно, что предупреждение появляетсяфайлы с предупреждением появляются случайным образом, я имею в виду, что каждый раз, когда я запускаю свой make-файл, файлы с предупреждением отличаются--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. Вот почему мне показалось странным, что появилось предупреждение.

Ответы на вопрос(6)

Ваш ответ на вопрос