![문제:](https://linux55.com/image/183679/%EB%AC%B8%EC%A0%9C%3A.png)
이 작업을 수행하는 스크립트가 있습니다.
rm -rf "$test_dir" && sync && mkdir -p "$test_dir"
unzip -qq "$zip" -d "$test_dir"
# compile and run some stuff, diff some files...
evince "$pdf" 2>/dev/null # $pdf is a path inside the mentioned folder $test_dir
echo "[Next]..."
read
# then it goes to the next zip, and do the same again.
A.zip
zip 파일을 호출 하고 다음 파일(zip 파일 목록에서)을 호출해 보겠습니다B.zip
.- 각 zip 파일에는 두 개의 텍스트 파일과 하나의 PDF가 함께 제공됩니다.
문제:
추출 폴더가 이미 삭제되었다가 다시 생성되고 B.zip의 차례가 되면 텍스트 파일을 Cat.하고 Evince에서 PDF를 열면 B.zip
1~2초 동안 올바른 PDF가 표시됩니다.
그 후 evince는 문서를 다시 로드하고 에서 가져온 PDF를 표시합니다 A.zip
.
A.zip
가서 수동으로 다시 PDF를 열면 실제로 는 안에 있는 파일이 아닌 들어온 파일이 됩니다 B.zip
(따라서 evince는 새 파일을 여는 것뿐입니다).
수동으로 텍스트 파일을 다시 cat하면 콘텐츠는 터미널에 등록된 마지막 고양이 중 하나(에 있는 고양이 B.zip
)가 아니라 다음 텍스트 파일의 내용입니다.A.zip
의심:
폴더 자체(또는 해당 콘텐츠)가 삭제된 후 다시 돌아오는 것 같습니다.
수정 시도:
이전에는 "$test_dir"의 내용을 삭제했지만 디렉터리 자체는 삭제하지 않았습니다. 문제가 자주 발생했습니다. 그런 다음 폴더를 삭제하고 다시 삭제하기로 결정했지만 mkdir
이제 문제가 다시 발생하는 것 같습니다. .
문제가 지속되도록 sync
명령을 바로 추가해 보았습니다 .rm -rf
삭제 후에도 문제가 지속 됩니다 sleep
.
내가 확인한 내용:
웹에서 유사한 질문을 여러 개 보았지만 모두 다른 프로세스, docker 또는 다른 프로세스와 관련되어 있습니다. 내가 사용하는 폴더는 내 집에 있는 디렉터리일 뿐이며 내 폴더를 제외하고는 특별한 프로세스가 실행되지 않습니다. 스크립트([업데이트] 실제로 하나가 있었습니다. 답변을 참조하세요)
확인했는데 스크립트의 다른 곳에서는 압축을 풀지 않습니다.
답변1
원인을 찾았습니다. MegaSync 응용 프로그램이 백그라운드에서 실행 중인데, 모든 것을 동기화하는 동안 방금 삭제한 파일을 다시 가져오고 문제가 해결되었습니다.