URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3631
[ Назад ]

Исходное сообщение
"Написание скрипта"

Отправлено Well777 , 23-Ноя-04 19:01 
Необходимо написать скрипт, который ищет три самых больших по размеру файла в системе! Я - ламер!

Содержание

Сообщения в этом обсуждении
"Написание скрипта"
Отправлено DeadMustdie , 23-Ноя-04 20:06 
Способ ровно один: просмотреть листинги всех каталогов.
Далее начинаются варианты. Нечто наиболее элементарное,
притом весьма корявое:

ls -sRU1 | while read size fname; do
  if [ ! -z "$fname" ]; then
    if [ ! -z `echo $size | grep -E '[0-9]+'` ]; then
      echo $size $fname
    fi
  fi
done | sort -g

Три последних строки и будут именами трёх самых больших
в системе файлов.


"Написание скрипта"
Отправлено Аноним , 24-Ноя-04 06:33 
Зачем так сложно?

find / -type f | xargs du -b | sort -rn | head -3


"Написание скрипта"
Отправлено EvilX , 24-Ноя-04 07:56 
>Зачем так сложно?
>
>find / -type f | xargs du -b | sort -rn |
>head -3


Не верно несколько.        
find ./ -type f | xargs du -a | sort -rn | head -3

xargs du -a.


"Написание скрипта"
Отправлено sas , 24-Ноя-04 09:50 
>>Зачем так сложно?
>>
>>find / -type f | xargs du -b | sort -rn |
>>head -3
>
>
>Не верно несколько.
>find ./ -type f | xargs du -a | sort -rn |
>head -3
>
>xargs du -a.

Был не прав. Беру свои слова обратно
Удачи
--- sas


"Написание скрипта"
Отправлено Аноним , 24-Ноя-04 18:34 
проблемы если имена файлов или директорий с пробелами.
выдает:
$ find ./ -type f | xargs du -a | sort -rn | head -n 3
du: cannot access `./.mozilla/default/profile/Mail/Local': No such file or directory
du: cannot access `Folders/Trash': No such file or directory

вот эта версия не ругается
find ./ -type f -print0 | xargs -0 du -a | sort -nr | head -n 3