например, у меня есть команда, которая показывает, сколько берет папка пространства
du folder | sort -n
это работает отлично, однако я хотел бы иметь человекочитаемую форму
du -h folder
однако, если я делаю это, чем я не могу отсортировать его как числовой.
Как присоединиться du folder
и du -h folder
видеть вывод, отсортированный как du folder
, но с первым столбцом от du -h folder
P.S. это - просто пример. эта техника могла бы быть очень полезна для меня (если его возможное)
Вот более общий подход. Получите вывод du folder
и du -h folder
в двух различных файлах.
du folder > file1
du -h folder > file2
Ключевая роль - это: конкатенировать file1
и file2
линию за линией, с подходящим разделителем.
paste -d '#' file1 file2 > file3
(принятие #
не появляется в file1
и file2
)
Теперь вид file3
. Обратите внимание, что это отсортирует на основе file1
содержание и повреждение связывают file2
содержание. Извлеките использование релевантного результата cut
:
sort -n -k1,7 file3 | cut -d '#' -f 2
Также смотрите на man sort
для других опций.
Можно также сохранить это как псевдоним для более позднего повторного использования. Для этого добавьте следующее к нижней части ~/.bashrc
:
sorted-du () {
paste -d '#' <( du "$1" ) <( du -h "$1" ) | sort -n -k1,7 | cut -d '#' -f 2
}
Затем откройте новый терминальный сеанс и выполните Ваш новый псевдоним:
sorted-du /home
Попробуйте что-то как:
du -h folder | sort -h
Альтернативы: -n
для Числовой сортировки
Примечание: -h
опция вида только существует в более новых версиях Ubuntu.
Этот ответ действителен для 10.04.4LTS и более низкие версии Ubuntu.
Unfortunatly точный ответ, какие виды K M G являются трудными и сложными:
Можно исказить всю команду du с той что виды человекочитаемое использование этого
alias duf='du -sk * | sort -n | perl -ne '\''($s,$f)=split(m{\t});for (qw(K M G)) {if($s<1024) {printf("%.1f",$s);print "$_\t$f"; last};$s=$s/1024}'\'
который я нашел здесь
http://www.earthinfo.org/linux-disk-usage-sorted-by-size-and-human-readable/
просто CD в папку требуется знать затем duf
Вы могли добавить этот псевдоним duf в конец своего/home/user/.profile, чтобы заставить duf управлять semi-permenant
результаты:
user@hostname:~$ duf 0.0K Documenten 0.0K Muziek 0.0K Openbaar 0.0K Sjablonen 0.0K Video's 4.0K backup_db.sql.g 4.0K examples.desktop 12.0K xml printer ticket 52.0K hardinfo_report.html 152.0K librxtxSerial.so 2.7M jpos 4.4M nxclient_3.5.0-7_amd64.deb 6.4M nxnode_3.5.0-4_amd64.deb 6.8M Downloads 7.4M nxserver_3.5.0-5_amd64.deb 12.4M NetBeansProjects 18.1M mysqlworkbench.deb 28.3M Afbeeldingen 45.8M ergens-20110928-18.sql.gz 60.5M 2012-06-02ergens_archive.tar.gz 65.5M 2012-08-26ergens_archive.tar.gz 65.6M 2012-08-28ergens_archive.tar.gz 65.6M 2012-08-29ergens_archive.tar.gz 65.7M 2012-08-30ergens_archive.tar.gz 113.0M Bureaublad 306.2M ergens-20110928-18.sql
Вот то, почему du -sch /var/* | sort -n
не работает посмотрите сортировку MKKMMKKMMK
user@hostname:~$ du -sch /var/* |sort -n 0 /var/crash 0 /var/local 0 /var/lock 0 /var/opt 8,0M /var/backups 12K /var/games 16K /var/tmp 17M /var/log 68M /var/cache 104K /var/spool 144K /var/run 351M /var/lib 443M totaal 704K /var/mail
Для последних версий Ubuntu использовать du -h directory | sort -h
.
Я использую форму этого все время для нахождения неконтролируемых файлов.
Откройте свой терминал с Ctrl+Alt+t и типом:
du -sk * | sort -rn
Тот я нашел работу над всеми системами независимо от версии (sort -h
не работает на меня),
du -h $(du * | sort -n | awk '{print $2}')
awk '{print $2}'
в основном имена файлов печати.
Эти имена файлов дескрипторов с пробелом или апострофами и работами над системами, которые не поддерживают xargs -d
или sort -h
:
du -s * | sort -n | cut -f2 | tr '\n' '\0' | xargs -0 -I {} du -sh "{}"
который приводит к:
368K diskmanagementd
392K racoon
468K coreaudiod
472K securityd
660K sshd
3.6M php-fpm
Команда GNU sort
имеет следующую опцию:
-h
,--human-numeric-sort
сравните человекочитаемые числа (например, 2K 1G).Чтобы иметь эту опцию на BSD/OSX, можно установить
sort
отcoreutils
(черезbrew
) и добавьте папку мусорного ведра к ВашемуPATH
в Ваши емкостно-резистивные файлы.
Таким образом, команда была бы быть похожей:
du -ah . | sort -rh | head -20