-
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
-
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 :(
-
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.