#!/bin/bash # Вывод всех файлов, от которых не зависят другие файлы (не завистя жёстко). #deborphan --all-packages --nice-mode --no-show-section #exit 0 # Список всех установленных пакетов в allpacks dpkg -l | grep ".i " | cut -d ' ' -f3 | tail -n +8 > allpacks.txt 2>/dev/null allpacks=`dpkg -l | grep ".i " | cut -d ' ' -f3 | tail -n +8 2>/dev/null` # Весь список зависимостей. Чтение идёт из allpacks { while true; do # для всех пакетов # Считываем имя пакета read p if [ "$p" == "" ]; then break ;fi # Добавляем в список зависимостей те за-ти, кт. не входят в рекоммендуемые dep=`dpkg-query -W -f='${Depends}\n' $p` tmp=", "`dpkg-query -W -f='${Pre-Depends}\n' $a` if [[ "$tmp" != ", " ]]; then dep=$dep", "$tmp; fi rec=`dpkg-query -W -f='${Recommends}\n' $p` while true; do if [ "$dep" == "" ]; then break; fi a=${dep##*\ } dep2=${dep%\ *} if [ "$dep2" == "$dep" ]; then dep=""; else dep="$dep2"; fi a=${a%\,};a=${a#\,};a=${a%\|};a=${a#\|} echo $allpacks| grep -E "\<$a\>" &>/dev/null && echo $rec | grep -v -E "\<$a\>" &>/dev/null if [ $? == 0 ];then echo $a; fi done done } alldeps.txt 2>/dev/null #exit 0 alldeps=`cat alldeps.txt` # Вывод всех крайних файлов, от которых не зависят другие. { while true; do read a if [ "$a" == "" ]; then break; fi echo $alldeps | grep -E "\<$a\>" &>/dev/null if [ $? == 0 ]; then continue; fi dpkg-query -W -f='${Priority}' $a| grep -i "important" &>/dev/null if [ $? == 0 ]; then continue; fi echo $a done }