tar 삭제 진행 문제

tar 삭제 진행 문제

사용해 보았습니다아스팔트명령, --delete옵션 및 몇 가지 문제가 발생했습니다. 내가 이해하지 못하는 두 가지가 있습니다.

  1. --verbose--delete 옵션과 함께 옵션을 사용하면 --verbose평소와 같이 아무것도 표시되지 않습니다. 즉, 삭제된 파일이 표시되지 않습니다.
  2. 옵션을 사용할 때 --totals삭제된 크기는 항상 0입니다. 이는 말이 되지 않으며 이러한 출력이 무엇을 의미하는지 알 수 없습니다.

누구든지 이 문제를 해결하도록 도와줄 수 있나요? 다음 코드는 프로세스를 보여줍니다.

x@x:~/bin$ tar --list --file=pomo.tar
pomodoro
pomodoro_2
pomodoro_3
x@x:~/bin$ tar --append --file=pomo.tar quitpomo --verbose
quitpomo
x@x:~/bin$ tar --list --file=pomo.tar
pomodoro
pomodoro_2
pomodoro_3
quitpomo
x@x:~/bin$ tar --list --file=pomo.tar --totals
pomodoro
pomodoro_2
pomodoro_3
quitpomo
Total bytes read: 10240 (10KiB, 12MiB/s)
x@x:~/bin$ tar --delete --file=pomo.tar quitpomo --total --verbose
Total bytes read: 10240 (10KiB, 86MiB/s)
Total bytes written: 10240 (10KiB, 86MiB/s)
Total bytes deleted: 0

답변1

.tar전후의 파일 크기를 보면 --delete파일 크기에는 변화가 없음을 알 수 있습니다. 따라서 삭제된 총 바이트 수는 0입니다.

파일을 더 크게 만들고 quitpomo(20480바이트로 시도) 파일을 추가한 다음 동일한 명령을 사용하여 삭제하면 0이 아닌 "제거된 총 바이트 수"가 표시됩니다.

이는 (GNU)tar에 의해 발생합니다.블록 구조 사용e 이로 인해 약간의 오버헤드가 추가되고, 블록 수를 변경하지 않는 항목을 삭제하면 바이트가 삭제되지 않은 것으로 간주됩니다(전체 파일 크기를 기준으로 하며, 확실히 해당 블록 내에 저장된 파일의 결합 크기는 아닙니다).

관련 정보