Недавно я перешёл на криптование домашнего каталога через FileVault, до этого проанализировав вопрос в статьях “Влияние FileVault на производительность файловых операций” и “Производительность FileVault при параллельной файловой активности“. Результаты были хороши. Реальное же использование криптования слегка подкорректировало моё мнение – да, с включённым FileVault система работает при определённых операциях медленнее.

В итоге я понял, что большинство моих данных не настолько секретно, а действительно приватные данные можно скрыть в закриптованном образе Sparse Bundle, и жертвовать производительностью ради секретности для меня смысла нет.

Для того, чтобы упростить обратную конвертацию, я решил вынести самые большие каталоги временно из домашнего каталога. Привычный алгоритм выглядел просто – перенести Music, Photos, Videos, а дальше запустить консоль и, итеративно запуская “du -ks * | sort -rn”, найти оставшихся пожирателей дискового пространства.

$ cd ~
$ du -ks * | sort -rn
9155148	Library
4267588	Documents
546600	Dropbox
340496	Music
7712	Woopra
100	bin
...
$ cd Library
$ du -ks * | sort -rn
...

Этот метод хорош. Но он не из разряда “Mac Way”. И тут я вспомнил о программе DaisyDisk, которая является по сути красивой заменой приведённому выше процессу. Программа платная, стоит $19.95, но для разового поиска можно использовать программу в триальном режиме. Программа хорошая, и я её купил, зная, что она не раз мне ещё пригодится.

Немного пройдусь по функциям DaisyDisk в приложении к моей задаче. Стартовая точка – выбор диска или каталога, который нужно проанализировать:

Вы видите, почему я занялся переносом – на диске осталось мало места, и провести конвертацию домашнего каталога мне вряд ли удалось. Результат работы:

Можно спускаться в любой каталог и смотреть, что же занимает столько места, причём, в отличие от “du -ks *”, не нужно хранить результаты сканирования предыдущих каталогов. При наведении на каталог его графическое представление начинает мерцать.

Представляется весь диск. Внутреннее кольцо – каталоги относительно корневого, дальше идут дочерние. Например, можно пройтись по кругам, выявляя, что же занимает больше всего места.

Круг первый:

Круг второй:

Круг третий:

На уровне файлов можно запустить Preview, нажав пробел:

Да, я опечатался, написав “Треккинг в Непала”, хочется добавить в стиле юмористов “начАльника”. Но перерендерить фильм руки не доходят, тем более, что он только для себя и друзей.

Чтобы перейти на файл или каталог в Finder, достаточно нажать ” ⌘ + Click”, и по месту решить, что делать с объектом – удалять или нет:

Если какие-то каталоги недоступны для пользователя, то их просканировать можно, включив режим “Суперпользователя”:

DaisyDisk сканирует быстро весь диск. Как она это делает? Нет, она не делает это очевидным образом через проход по дереву. Она использует псевдокаталог /.vol, в котором анализирует inode:

open:entry DaisyDisk /.vol/234881026/9058507
open:entry DaisyDisk /.vol/234881026/9058511
open:entry DaisyDisk /.vol/234881026/8746896
open:entry DaisyDisk /.vol/234881026/9031043

В /.vol первое число обозначает Volume ID (идентификатор файловой системы), а второе – inode файла. А вот траверс файловой системы на базе inode – это отдельный вопрос.

$ ls -al /.vol/234881026/9058507
total 0
drwx------   3 ctrld  wheel  102 Feb 18 08:58 .
drwxrwxrwt  27 root   wheel  918 Feb 18 17:54 ..
srwx------   1 ctrld  wheel    0 Feb 18 08:58 Render

Следствие этого механизма сканирования: выполнить нахождение больших файлов внутри каталога FileVault текущего пользователя программа не может, она отображает его как обычный SparseBundle.

Однако решение есть – нужно просканировать не диск, а конкретный каталог, в итоге его содержимое будет проанализировано:

Программа проста, но тем не менее полезна. На мой взгляд она стоит каждого доллара из $19.95. Рекомендую.