web-dev-qa-db-ja.com

tar削除の進行状況の質問

tarコマンド、--deleteオプションを使用しようとしましたが、いくつかの問題が発生しました。私が理解していないことが2つあります。

  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
2
Shawn Ma

.tarの前後の--deleteファイルのサイズを見ると、ファイルサイズに変化がないことがわかります。したがって、削除される合計バイト数は0です。

ファイルをquitpomo大きくして(20480バイトを試しました)、追加してから同じコマンドを使用して削除すると、ゼロ以外の「削除された合計バイト数」になります

これは、(GNU)tar ブロック構造を使用 eが原因で発生し、特定のオーバーヘッドが追加されます。ブロック数を変更しないものを削除すると、(合計に対して)バイトが削除されなかったと見なされます。ファイルサイズ。もちろん、これらのブロックの内部に保存されているファイルの合計サイズではありません)。

1
Anthon