Warum zeigt „du -sh“ nach dem Kopieren eine andere Ordnergröße?

484
user3262987

Ich möchte eine einfache Sicherung haben und alle Dateien von einem Ordner in einen anderen kopieren. OS ist Debian.

  • Wenn ich einen du -shauf dem Quellordner mache, bekomme ich 436G.
  • Wenn ich dasselbe am Ziel mache, bekomme ich nur 384G.

Wenn ich beide Ordner über Samba auf einem Windows-Computer mounte, haben beide Ordner dieselbe Größe.

Kann mir jemand erklären, warum duzeigt es unterschiedliche Größen?

2
Können Sie versuchen, ein 'ls -lah' in den Quell- und Zielverzeichnissen auszuführen? Ich wette, sie sind gleich. [Die Antwort] (https://superuser.com/a/1294727/167207), die auf "--apparent-size" verweist, ist ziemlich genau, was passiert. JakeGould vor 6 Jahren 0

1 Antwort auf die Frage

2
Pedro

duhat eine Option, für --apparent-sizedie Sie vielleicht helfen könnten. Ich würde vermuten, dass die beiden Platten unterschiedliche Blockgrößen haben. Wenn eine Datei nur teilweise einen Block verwendet, kann der Rest nicht von anderen verwendet werden, so dass die Plattenbelegung standardmäßig in Blöcken gezählt wird.

Um die Blockgröße zu ermitteln, die ein ext-Dateisystem in / dev / sda1 verwendet, können Sie Folgendes tun:

sudo tune2fs -l /dev/sda1 | grep 'Block size' 

Wenn Sie befürchten, dass nicht alle Ihre Dateien kopiert wurden, können Sie ein Programm erhalten cfv, um einen rekursiven Hash für die Originaldateien zu erstellen und die Sicherung damit zu überprüfen.

Prüfsummen aus Originalen generieren :

cfv -p /path/to/origin -C -rr -f /tmp/checksum.sha1 

Sicherung gegen Prüfsummen prüfen :

cfv -p /path/to/backup -T -u -f /tmp/checksum.sha1