btrfs komprimiert jede Datei, die seit dem Mounten geändert wurde, wenn Sie Folgendes verwenden:
mount -o compress-force=lzo /dev/btrfsdev /mnt/btrfsmnt
Wenn Sie dafür sorgen möchten, dass ALLE Dateien auf diese Weise komprimiert werden, habe ich ein kleines Skript, das ich dazu geschrieben habe ...
du -ht +$((1024*1024)) "$HOME" |\
sed -rn 's/^[^/]*(.*)/btrfs fi defrag -fvclzo "\1"/p' |\
sudo sh -n
Das obige funktioniert nur in meinem $HOME
Verzeichnis - aber Sie können es für alles oder jedes verwenden, wie Sie möchten. Außerdem wird der -n
Operand sh
so wie er ist eingespeist, sodass Sie selbst sehen können, was gerade sh
geschieht not
, bevor Sie ihn entfernen, um ihn anzuweisen, dies zu tun.
Wie auch immer, zuerst werden du
Dateien im human-readable
Format abgefragt (wahrscheinlich redundant hier, da wir das im nächsten Schritt sowieso entfernen) , die größer als 1MB
oder sind$((1024*1024)).
Es ist |pipes
seine Information, sed
die alles abstreift, bevor der /, "quotes"
Dateiname führt, den btrfs filesystem defragment -verbose -flush-to-disk -compress-lzo \filename
Befehl erstellt und ihm ein |pipe
to sudo sh
zur Ausführung übergibt .
Auch hier wird es nichts tun, solange sh --no-execute
es in Kraft ist.
Ich denke , einige sehr bisherigen btrfs
User - Space - Tool baut rekursiv defragmentieren ganze Verzeichnisse tun, aber wenn so ist es eine ziemlich neue Sache, so dass ich immer Sachen wie diese zu tun gehabt haben.