Strona 1 z 1

bash - skrypt wyszukujący określone katalogi

: 19 stycznia 2010, 22:46
autor: lincoln1
Witam.
Piszę prosty skrypt w bashu i napotkałem mały problem.
Mianowicie: Chcę skrypt wyszukujący podkatalogi pierwszego poziomu zagłębienia, danego wcześniej katalogu, obliczenie ile zajmują miejsca (w kilobajtach) i posortowanie ich według wielkości. Napisałem kawałek kodu odpowiedzialnego za to lecz nie działa tak jak ma działać. Każdy człon jest poprawny, lecz w całości nie pracuje.

W bashu to mój pierwszy skrypt. Proszę o naprowadzenie mnie na błąd.

Kod: Zaznacz cały

find $wybor -type d -maxdepth 1 | du -S -c -k | sort -g;

: 19 stycznia 2010, 23:14
autor: lessmian2
lincoln1 pisze:lecz nie działa tak jak ma działać
A jak ma działać? Bo u mnie jak najbardziej działa (po przestawieniu opcji maxdepth na początek nawet nie wyrzuca ostrzeżenia) - wyświetla katalogi według zajętego miejsca od najmniejszego do największego.

Edycja
Rzeczywiście, jest babol. Przepraszam, moja pomyłka.

: 19 stycznia 2010, 23:20
autor: lincoln1
Mnie wyświetla mino -maxdepth1 katalogi o większym zagłębieniu i pliki.

: 19 stycznia 2010, 23:34
autor: lessmian2
Pewnie można łatwiej, ładniej, lepiej itp. ale idę zaraz spać i nie chce mi się już myśleć :->

Kod: Zaznacz cały

for i in `find . -maxdepth 1 -type d`;do du -Sck $i | grep razem | awk -v v=$i '{print $1 "\t"v}';done | sort -g
Edycja:
Tak na marginesie to temat raczej do działu programowanie ;-)

: 20 stycznia 2010, 11:05
autor: rgl
A dlaczego użyłeś

Kod: Zaznacz cały

 du -Sck katalog 
Jeśli chcesz poznać ilość zajętego przez dany katalog miejsca nie powinno być raczej

Kod: Zaznacz cały

du -sk katalog
?
Wtedy:

Kod: Zaznacz cały

find $wybor -maxdepth 1 -type d -exec du -sk \{\} \; |sort -g

: 20 stycznia 2010, 11:33
autor: lessmian2
Masz rację. Zasugerowałem się opcjami podanymi przez lincoln1.