tar: plik zmienił się podczas jego czytania

ja używammake itar wycofać się. Podczas wykonywania makefile, polecenie tar pokazujefile changed as we read it. W tym przypadku,

pakiet tar jest poprawny, gdy pojawia się ostrzeżenieale zatrzymuje polecenie tar dla następującej kopii zapasowejplik z ostrzeżeniem w rzeczywistości się nie zmienia - to naprawdę dziwne, że pojawia się ostrzeżeniepliki pokazujące ostrzeżenie pojawiają się losowo, to znaczy, za każdym razem, gdy uruchamiam plik makefile, pliki z ostrzeżeniem są różne--ignore-failed-read nie pomaga. Używam tar 1.23 w MinGWWłaśnie zmieniłem komputer na WIN7 64-bitowy. Skrypt działa dobrze w starym 32-bitowym WIN7. Ale wersja tar nie jest tak nowa jak wersja 1.23.

Jak mogę zatrzymać ostrzeżenie tar, aby zatrzymać kopię zapasową po ostrzeżeniu?

Edit-2: to może być powód

Jak powiedziałem powyżej, skrypt powłoki bash działał dobrze na moim starym komputerze. W porównaniu ze starym komputeremmsys wersja jest inna. Tak jest wersja polecenia tar. Na starym komputerze tar to 1.13.19 i na nowym komputerze jest 1,23. Skopiowałem stare polecenie tar bez kopiowania jego msys-1.0.dll zależności na nowy komputer i przemianowałem go na tar_old. Zaktualizowałem także polecenie tar w skrypcie powłoki i uruchomiłem skrypt. Wtedy wszystko jest w porządku. Wydawało się, że problemem jest polecenie tar. Jestem pewien, że nie ma żadnego pliku zmienionego podczas tarowania. Czy jest to błąd polecenia tar w nowej wersji? Nie wiem

Edit-1: dodaj więcej szczegółów

Kopia zapasowa jest wywoływana przez skrypt powłoki bash. Skanuje katalog docelowy i buduje makefile, a następnie wywołuje make, aby użyć polecenia tar do tworzenia kopii zapasowej. Dalej jest typowy plik makefile zbudowany przez skrypt powłoki 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

Jak widać, pakiet tar jest przechowywany w ~ / MS_bak_MSYS / tools / VC / VC_2010.tar.bz2. Uruchomię skrypt w ~ / qqaa.~/MS_bak_MSYS jest wykluczone z polecenia tar. Tak więc plik tar, który tworzę, nie znajduje się w katalogu, który próbuję umieścić w pliku tar. Dlatego dziwnie się czułam, że pojawiło się ostrzeżenie.

questionAnswers(6)

yourAnswerToTheQuestion