На этот вопрос уже был дан ответ здесь . Вставлено ниже:
Как отмечают другие, bzip2 не предоставляет много информации. Но этот метод работает --вам придется распаковать файл, но вам не нужно будет записывать распакованные данные на диск, что может быть для вас «достаточно хорошим» решением:
$ ls -l foo.bz2
-rw-r--r-- 1 ~quack ~quack 2364418 Jul 4 11:15 foo.bz2
$ bzcat foo.bz2 | wc -c # bzcat decompresses to stdout, wc -c counts bytes
2928640 # number of bytes of decompressed data
Вы можете направить этот вывод во что-то еще, чтобы получить форму, -удобочитаемую для человека:
$ ls -lh foo.bz2
-rw-r--r-- 1 quack quack 2.3M Jul 4 11:15 foo.bz2
$ bzcat foo.bz2 | wc -c | perl -lne 'printf("%.2fM\n", $_/1024/1024)'
2.79M
Потому что этого еще никто не писал:-)
Некоторые связанные ссылки, поясняющие, что необходимо сделать:
А также:
The reason it hasn't been done is that there is basically no demand for shrinking large filesystems. Storage is -cheap-, and in most environments data sets and capacity only grow.
Лично я не согласен с этим на 100 %, но в этом есть смысл. Я предполагаю, что идея XFS не заключалась в использовании на рабочих станциях или вообще в ситуациях, когда необходимо сжатие, поэтому она была написана таким образом, чтобы сжатие было сложнее (с журналом транзакций в середине файловой системы и т. д. )и растет легче.
Я думаю, что разработчики XFS пытаются сказать :Если вам нужна сжимаемая файловая система, просто не используйте XFS, но патчи приветствуются:-)
Обновление :В настоящее время ведется работа над поддержкой сжатия. xfsprogs 5.12 , выпущенная в мае, уже поддерживает сжатие, но все еще экспериментально --вам нужно неиспользуемое пространство в конце файловой системы, и нет возможности «дефрагментировать» файловую систему, чтобы убедиться, что все неиспользуемое пространство в конце. Но это определенно продвигается вперед, и мы надеемся, что скоро мы сможем ожидать «полную» поддержку.