скрипт для всех файлов - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть сценарий оболочки, который вычисляет, какой файл больше. Здесь я показываю, что у меня есть

p1="$HOME"
p2="backup.tar.gz"
p3="curl"

size1=`du $p1/$p2 | awk '{print $1}'`
size2=`du $p1/$p3 | awk '{print $1}'`

if [ $size1-gt $size2]
then
    echo "high is $p2"
else
    echo "high is $p3"
fi

Я хочу определить, какие файлы или каталоги $ HOME являются самыми большими, когда их может быть много, а не только два

1 Ответ

0 голосов
/ 02 ноября 2019

Ваша проблема уменьшается до

du "$HOME"/* | sort -n

Как и большинство здравомыслящих инструментов, du принимает список аргументов имени файла;и повторные парные сравнения чрезвычайно расточительны, когда вы можете просто отсортировать. Хороший алгоритм сортировки исключает большинство парных сравнений - он знает, что если A больше, чем B, а B больше, чем C, то A тоже должно быть больше, чем C.

...