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,
--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.