Алиас для показа самых больших файлов и директорий в текущей директории


ramok аватар

ramok - Posted on 15 Февраль 2009

"Резиновый винчестер это не игрушка, это мечта" Ж:-)
Как всегда не хватает места, и при поиске чего бы такого удалить может помочь алиас который показывает файлы и директории которые занимают больше мегабайта.

для bash, заносим в ~/.bashrc

alias dud="(shopt -s dotglob;du -ks * | sort -nr | sed -e 's/^\([0-9]\{1,\}\)[0-9]\{6\}[^0-9]/\1G\t/;t;s/^\([0-9]\{1,\}\)[0-9]\{3\}[^0-9]/\1M\t/;t;d')"
#или альтернативный вариант с perl
alias dud="(shopt -s dotglob;du -ks * | sort -nr | perl -pe 's/^(\d+)\d{6}[^\d]/\$1G\t/ || s/^(\d+)\d{3}[^\d]/\$1M\t/ || s/.*\n//')"

для zsh, заносим в ~/.zshrc

alias dud="(setopt globdots;du -ks * | sort -nr | sed -e 's/^\([0-9]\{1,\}\)[0-9]\{6\}[^0-9]/\1G\t/;t;s/^\([0-9]\{1,\}\)[0-9]\{3\}[^0-9]/\1M\t/;t;d')"
#или альтернативный вариант с perl
alias dud="(setopt globdots;du -ks * | sort -nr | perl -pe 's/^(\d+)\d{6}[^\d]/\$1G\t/ || s/^(\d+)\d{3}[^\d]/\$1M\t/ || s/.*\n//')"

Цифры примерные, так как считается что в мегабайте не 1024 байт, а 1000.

Пример использования:

ramok@ramok:~/doc/os/unix$ dud
170M    Richard Stevens TCP-IP Illustrated Vol 2.pdf
153M    Richard_Stevens_UNIX_Network_Programming_Sec_Ed_Vol_1.pdf
126M    Rederik_Smith_Full_Docs_FreeBSD_rus.pdf
117M    WhiteParus.Unix.Rukovodstvo_Sysadmina.pdf
115M    Richard_Stevens_Advanced_Programming_in_the_UNIX_Environment.pdf
89M Richard Stevens Tcp-Ip Illustrated Vol 1.pdf
80M Richard_Stevens_UNIX_Network_Programming_Sec_Ed_Vol_2.pdf
73M IEEE
22M tannenbaum

Советы в тему с поиском больших пакетов:

Советы в тему с алиасами:

3
Ваша оценка: Ничего Рейтинг: 3 (4 голоса)

А ещё есть ncdu! Оно прямо создано для ситуаций, когда надо быстро освободить место на диск

попробовал ниче так. применю как нить Ж:-)

В перловых выражениях
s/^(\d+)\d{6}[^\d]/\$1G\t/ || s/^(\d+)\d{3}[^\d]/\$1M\t/ || s/.*\n//
надо убрать \ перед $
s/^(\d+)\d{6}[^\d]/$1G\t/ || s/^(\d+)\d{3}[^\d]/$1M\t/ || s/.*\n//

А то выводит
$1G .VirtualBox
вместо
5G .VirtualBox

А так спасибо за полезность. Записал себе в профиль

экранировать $ нужно если использовать в виде алиасов как я написал.
весь алиан обрамлен "" и $1 раскрывается шелом после команды alias dud=""

наверное надо показать отдельную команду

Да точно, спасибо. Что-то я протупил

Блин, да когда же Вам всем надоест самокаты плодить, а???

find -size +1M -exec du -ha {} \;

а зачем мне все вложенные файлы?
ты бы хоть попробывал сначало что бы видеть чем отличается, прежде чем кидатся такими заявлениями

Добавьте -maxdepth 0, 1, 2 какая вздумается в любой момент, вот и все. А также вся остальная мощь - добавьте одной опцией сортировку в нужном порядке (также 1 ключик), любой отбор, скажем не только по размеру но хоть по правам и владельцу, да еще черта в ступе.

а теперь добавь сортировку нормальную(что бы шли гигабайты, потом мегабайты) и получить такой же "велосипед".
теже фаберже только в профиль. а понту то

find -maxdepth 1 -size +1M -printf "%s\t%P\n" | sort -nr | cut -f2 | xargs -I{} du -ha {}

А добавим в Ваш вариант скажем еще исключение нужных файлов по именам, исключение файлов старее месяца...? :)

фух.. и чем теперь Ваша команда не "велосипед"? тем более не делает то что задумано изначально. эта команда_не_ считает размеры директорий в текущей директории. считаются только файлы.
мне _лично_ больше нужны директории которые занимаю место чем файлы.

например хочу зайти в /usr/local и увидеть примерно такое

311G	home
6G	scratchbox
574M	arm
501M	opt
181M	arm-ssv1-linux
52M	arm-xscale-linux
3M	java
1M	fonts.lst

а не

1,2M	fonts.lst

что до "а добавим в Ваш вариант скажем..", такой задачи не стояло и не стоит.
надо будет - добавим | grep или сделаем новую команду, но _мне лично_ ненадо было исключать файлы по имени или старее. что не делает этот алиас "велосипедом"

sort -nr лучше заменить на sort -n

допустим у вас 200 файлов
и когда вы смотрите и вам надо удалить самые большие
они получаются самые первые, а как правило с помощью именно этой команды мы отслеживаем большие файлы, логи, дампы и что то еще...

http://dev.yorhel.nl/ncdu/ - стоит попробовать.

Спасибо, мне понравилось :)

надёжнее будет:
du -sm * | sort -n | tail

Правильно ли я понял, что каталоги размером в пару-тройку гигабайтов окажутся в конце этого списка? Далее. Правильно ли я понял, что скрытые каталоги вас не интересуют?

Так что, увы, приходится ограничиваться du -sk * .??*, хоть это и не так наглядно...

подправлю Ж:-)
что бы не ругалось на .??* если нет дот файлоф. надо отлючить кой чего
или сделать по другому

Спасибо!

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.