btrfs sẽ nén mọi tập tin thay đổi kể từ khi nó được gắn nếu bạn sử dụng:
mount -o compress-force=lzo /dev/btrfsdev /mnt/btrfsmnt
Nếu bạn muốn thấy rằng TẤT CẢ các tệp được nén theo cách này, tôi đã có một đoạn script nhỏ mà tôi đã viết để thực hiện ...
du -ht +$((1024*1024)) "$HOME" |\
sed -rn 's/^[^/]*(.*)/btrfs fi defrag -fvclzo "\1"/p' |\
sudo sh -n
Ở trên chỉ hoạt động trên $HOMEthư mục của tôi - nhưng bạn có thể sử dụng nó trên bất cứ thứ gì hoặc mọi thứ bạn muốn. Nó cũng có -ntoán hạng được cung cấp shnhư vậy để bạn có thể tự mình xem những gì shhiện đang notlàm trước khi gỡ bỏ nó để bảo nó làm điều đó.
Dù sao, đầu tiên, nó truy vấn ducác tệp ở human-readableđịnh dạng (có thể là dư thừa ở đây vì chúng tôi sẽ loại bỏ bước đó trong bước tiếp theo) lớn hơn 1MBhoặc$((1024*1024)).
Nó |pipesthông tin của nó để sedmà dải tắt tất cả mọi thứ trước khi dẫn /, "quotes"tên tập tin, xây dựng các btrfs filesystem defragment -verbose -flush-to-disk -compress-lzo \filenamelệnh và tay nó qua một |pipeđến sudo shđể thực thi.
Một lần nữa, nó sẽ không làm bất cứ điều gì miễn sh --no-executelà có hiệu lực.
Tôi nghĩ rằng một số rất gần đây btrfscông cụ userspace xây dựng làm toàn bộ thư mục defragment đệ quy, nhưng nếu như vậy đó là một điều khá mới, vì vậy tôi đã luôn luôn phải làm những thứ như thế này.