Вопрос: Анализатор использования диска Linux, который действует как символические ссылки, является реальными файлами


Я использую git-приложение, расширение для DVCS git, которое предназначено для обработки больших файлов. Он сильно использует символические ссылки. Фактические большие файлы перемещаются в .git/annex каталог и исходные файлы имеют символическую ссылку.

У меня заканчивается дисковое пространство, и мне нужно очистить и посмотреть, что использует все мое пространство. Обычно я использую инструмент для использования диска, например ncdu, Baobab или Filelight. Однако они трактуют символическую связь как по существу пустую и только подсчитывают файл, на который он указывает, используя любое пространство. Это означает, что когда я использую git-приложение, он не показывает пробела, используемого в основных каталогах, и большого количества пространства, используемого в каталоге .git / app. Это не полезно.

Есть ли какая-либо (графическая или ncurses) программа для использования диска на linux (apt-get installable будет easie, способным (посредством опций или нет) подсчета символической ссылки, используя пробел, который использует исходный файл? для различного поведения для жестких ссылок, поэтому имеет смысл, что некоторые должны h

(Я знаю, что подсчет символических ссылок, поскольку использование пространства имеет недостатки, такие как подсчет пробела дважды, сломанные символические ссылки и т. Д. Но это нормально для моих целей)


6
2017-08-01 18:13


Источник


Возможно, это выполнимо с fsview manpages.ubuntu.com/manpages/lucid/man1/fsview.1.html Кроме того, посмотрите здесь: superuser.com/questions/9847/... - Mihai Todor


Ответы:


GNU du имеет опцию --dereference, которая разделяет символические ссылки при вычислении использования диска. Тем не менее, du отказывается считать одно и то же пространство дважды, что может быть нарушителем сделки в вашей ситуации:

% mkdir foo bar baz
% dd if=/dev/zero of=foo/test bs=1024 count=10000
10000+0 records in
10000+0 records out
10240000 bytes (10 MB) copied, 0.0176239 s, 581 MB/s
% (cd bar; ln -s ../foo/test)
% (cd baz; ln -s ../foo/test)
% du -hc bar baz
4.0K    bar
4.0K    baz
8.0K    total
% du -hc --dereference bar baz
9.8M    bar
4.0K    baz
9.8M    total

Однако, если у вас нет нескольких символических ссылок на одну и ту же цель, я думаю, что -exeference делает то, что вы хотите.


6
2017-09-09 15:25



Вы всегда можете запустить dd через for, как это: for dir in foo bar; do du -hc --dereference "$dir"; done - Hubert Kario


git-приложение имеет список программное обеспечение в том числе некоторые утилиты для использования дисков git-app - Gadu а также размеры,


1
2018-03-21 23:26





в настоящее время git-приложение имеет свои собственные решения для этой проблемы. вы можете использовать:

git annex info --fast *

... для получения фактического использования диска (и более) из файлов непосредственно из git-приложения. он также может работать с удаленными репозиториями, что очень полезно:

git annex info --fast --not --in here .

... даст вам количество данных, которые не например, в текущем хранилище.

я также использовал ncdu с этим небольшой патч с хорошими результатами.

форум, обсуждающий это эквивалент «du» в приложении? и имеет больше предложений, таких как du -L, Gadu а также размеры о которых упоминалось в других ответах здесь.


1
2017-08-12 03:07





Есть ли какая-либо (графическая или ncurses) основанная на использовании диска программа для linux (apt-get installable будет easie, способным (посредством опций или нет) подсчета символической ссылки использовать пробел, который использует исходный файл?

TL; DR: du -akL mydirectory | xdiskusage -aq

Длительный ответ: объедините две мощные комбинируемые программы

Я также использую ГИТ-приложение и имеют такую ​​же потребность.

Справочный инструмент для использования на диске: GNU du

GNU du как и большинство инструментов GNU, множество вариантов, в том числе:

«-L»   «--dereference»

Разделяйте символические ссылки (покажите дисковое пространство, используемое файлом или каталогом, на которое указывает ссылка, вместо пространства, используемого ссылкой).

Справочный инструмент для интерактивного изучения и масштабирования в дереве использования диска: xdiskusage

Кроме того, есть отличный, легкий инструмент для использования диска с именем xdiskusage,

Вы можете использовать его полностью графически: выберите папку или выберите полную файловую систему, чтобы включить представление свободного пространства. Вы можете щелкнуть, использовать стрелки и клавишу Enter, чтобы увеличить масштаб отображения дерева, скрыть некоторые поддеревья. Это очень практично, просто, быстро, даже на дистанционном дисплее.

Объедините их и получите прибыль!

У этого есть хорошая собственность, что вы также можете подавать его в результате вызова, аналогичного du -ak,

Итак, вы можете сделать:

du -akL mydirectory | xdiskusage

Я всегда использую этот вариант, где -a означает показать все файлы (не только каталоги), и -q сделать все намного быстрее, удалив слайдер прогресса:

du -akL mydirectory | xdiskusage -aq

Изображение из http://xdiskusage.sourceforge.net/ Биллом Спицаком.

xdiskusage display sample

apt-get?

apt-get installable

В Debian и деривативах, включая Ubuntu:

sudo apt-get install coreutils xdiskusage

(У вас наверняка уже установлены coreutils.)


0
2018-03-19 16:19