Problem w skrypcie z ls /home/user1 i du - sh /home/user1

Potrzebujesz pomocy z C, C++, perl, python, itp.
simontg
Posty: 6
Rejestracja: 17 grudnia 2007, 09:23

Problem w skrypcie z ls /home/user1 i du - sh /home/user1

Post autor: simontg »

Witam ,

Mam następujący problem. Piszę skrypt który ma robić różne rzeczy :) , jedną z nich ma być obliczanie ilości zajmowanego miejsca przez katalogi użytkowników.

Normalnie robi się :

Kod: Zaznacz cały

ls /home
wyświetlą sie katalogi użytkowników
a następnie można już zrobić poleceniem

Kod: Zaznacz cały

du -sh /home/katalog_usera1
itd.

Chciałbym aby to robił skrypt.

Myślę nad tym już od kilku dni ale nie mam pomysłu jak sie za to zabrać.
Wiem że bym musiał chyba jakoś załadować cały katalog

Kod: Zaznacz cały

 /home 
do tablicy i potem elementy tego katalogu traktować jak rekordy tablicy i "traktować" poleceniem

Kod: Zaznacz cały

 du -sh 
każdy po kolei w pętli.
Ale nie wiem jak sie mam za to zabrać ;/. Dlatego proszę o wielką pomoc w tym problemie.
Nie chce gotowca , bo zależy mi na nauczeniu się a nie na bezmyślnym przepisywaniu , ale naprawdę nie wiem jak mam to "ugryźć".


Z góry dziękuję za pomoc
pioki
Posty: 12
Rejestracja: 10 listopada 2007, 10:56

Post autor: pioki »

Chodzi ci o coś takiego?

Kod: Zaznacz cały

du -sh /home/* 2>/dev/null
Jakoś obyło się bez pętli.

Jeśli chodzi o pętle to możesz o nich więcej się dowiedzieć w manualu po wydaniu polecenia man bash.
simontg
Posty: 6
Rejestracja: 17 grudnia 2007, 09:23

Post autor: simontg »

Bardzo ale to bardzo dziękuję :D :D

dokładnie o takie coś mi chodziło :D

A ja myślałem że trzeba będzie jakąś tablicę tworzyć.
Czy mógłbyś mi wyjaśnić co robi dalszy ciąg tego polecenia bo przyznaję ze jestem początkującym użytkownikiem linuxa i hmmm ogólnie uczę sie dopiero.

chodzi mi o fragment

Kod: Zaznacz cały

.../* 2>/dev/null
co robi ta , i jeśli to dobrze zrozumiałem przekierowałeś strumień do

Kod: Zaznacz cały

 >/dev/null 
, co to powoduję i co to jest ?
Czy mógłbyś mi to napisać co każdy z tych znaków powoduje ?
Wiem dużo pytań ale jestem naprawdę pod wrażeniem że zajmuje to jedną linijkę gdy ja chciałem pisać kilka jak nie kilkadziesiąt linii kodu ;/

pozdrawiam
salmon
Beginner
Posty: 296
Rejestracja: 12 października 2007, 23:28
Lokalizacja: Gliwice/Bielsko-Biała

Post autor: salmon »

simontg pisze:co robi ta
Kod:
*
http://pl.wikipedia.org/wiki/Wyra%C5%BCenie_regularne
Bardzo przystępnie opisane.
simontg pisze:2
http://pl.wikipedia.org/wiki/Standardowe_strumienie
simontg pisze:/dev/null
null znaczy: nic, zero. Czyli komunikaty o błędach przepadają w czeluściach linuksa :) więcej w:

Kod: Zaznacz cały

man null
Ogólnie to

Kod: Zaznacz cały

man bash
ODPOWIEDZ