다음을 사용하여 백업 스크립트를 작성하려고 합니다.이 답변은 슈퍼유저가 제공한 것입니다.진행률 표시줄을 표시합니다.
나는 tar
그것을 이렇게 부른다:
tar cf --exclude-vcs --exclude-ignore=.tarignore - $backup_files -P | pv -s $(du -csb $backup_files |awk '{print $1}'|tail -n 1) | gzip > "$target_file"
내가 얻는 것은 "tar -: 계산할 수 없습니다: 해당 파일이나 디렉터리가 없습니다"라는 오류이지만 스크립트는 여전히 실행 중입니다. 여기서 무슨 일이 일어나고 있는 걸까요? tar가 -
"출력 파일 대신 stdout 사용"으로 해석되지 않는 이유는 무엇입니까 ?
답변1
문제는 tar 플래그가 f
의미한다는 것입니다.다음 인수첫 번째 파일 피연산자가 아닌 파일 이름으로 해석됩니다.예전 문서와 마찬가지로제안. 라는 파일을 찾았습니다 --exclude-vcs
.
매개변수의 올바른 순서는 다음과 같습니다.
tar cf - --exclude-vcs --exclude-ignore=.tarignore $backup_files -P
tar가 종료될 때 스크립트가 종료되지 않은 이유를 잘 모르겠습니다.