Pokaż wyniki 1 do 3 z 3

Temat: Find i Users

  1. #1
    Zarejestrowany
    Apr 2008
    Postów
    1

    Domyślnie Find i Users

    Jestem troszeczkę początkujący jeżeli chodzi o skrypty w Bashu i mam problem z jednym zagadnieniem.
    Próbuję napisać skrypt, który wyprowadzi mi na ekran wszystkie katalogi, które różnią się Userem, który je posiada.
    Coś jak Root należy do Admina, a pod nim katalogi AAA (User1), BBB (Admin), CCC (User2), DDD (User2), EEE (Admin).
    Wypisze mi BBB, CCC, DDD.
    Problem też w tym, żeby zagłębiał się w dół drzewa katalogów ten skrypcik.

    Need fast help

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Tzn jesli dobrze rozumiem, chcesz przeszukac caly dysk i interesuja Cie tylko katalogi...

    / - owner root
    /home - owner root
    /home/user1 - tu user1
    /home/user1/pliki_usera2 - powiedzmy user2
    /home/user2 - user2
    ...
    /var/mail - root
    /var/mail/user2/ - katalog Maildir user2

    pytanie czy chcesz wyswietlic wszystko co nalezy do danego usera czy tylko podkatalogi danego katalogu? Nie do konca rozumiem problem
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3
    Zarejestrowany
    Nov 2007
    Postów
    54

    Domyślnie

    Również nie do końca potrafię zrozumieć Twoje pytanie, ale jeżeli interesują Cię wszystkie katalogi (i podkatalogi tego katalogu), które nie należą (bo tak zrozumiałem) do użytkownika uruchamiającego skrypt, to taki skrypt może okazać się pomocny
    Kod:
    #!/bin/bash
    
    function find_and_print
    {
        cd $1
        local pwd=`pwd`
        if [ $pwd = "/" ]; then
          pwd=""
        fi
        for file in `ls`; do
          if [ -d $file ] && [ ! -O $file ]; then
             if [ -x $file ]; then
               echo "$pwd/$file"
               find_and_print $file
             else
               echo "$pwd/$file <-- Cannot enter that directory"
             fi
          fi
        done
        cd ..
    }
    
    if [ -d $1 ] && [ -x $1 ]; then
      find_and_print $1
    else
      echo "$1 is not a directory or cannot be searched"
    fi
    Jako parametr podajesz nazwę katalogu, od którego zacznie się przeszukiwanie.
    Jak przybliżysz problem, postaram (lub postaramy) się pomóc bardziej.

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52