Wpis z mikrobloga

Mireczki z #unix #linux i #programowanie
#pomocy

Mam do napisania skrypt, który w pewnym folderze głównym zmieni uprawnienia WSZYSTKICH folderów na jakieś (podane przez usera) oraz zmieni uprawnienia plików w tych folderach (też wszystkich hurtowo).
Zacząłem od polecenia

chmod -R $folderright $mainfolder

zmieniam uprawnienia na folderright wszystkich obiektów (pliki i foldery) z głównego katalogu mainfolder.

Jak teraz wydobyć te pliki i zmienić im uprawnienia? Znalazłem polecenie find. A zatem czy polecenie:

find / -name '*.*'

będzie okej?
do tego dorzucam chmoda (w jakiejś pętli, może for i in find (...) ??)

pomóżcie :(
  • 10
@seeksoul: man chmod albo man find :p

tak w ogole to find / -type f znajdzie tylko pliki, find / -type d tylko folderki...
find /kakalog -type d -exec chmod -c $folderrights {}\;
find /kakalog -type f -exec chmod -c $plikrights {}\;
@seeksoul: Jeżeli różnica między plikami i katalogami dotyczy tylko -x/+x, powinna wystarczyć opcja +X - nadaje uprawnienie x tylko katalogom i plikom mającym już przynajmniej jeden z u+x, g+x lub o+x.

Przykład użycia X:
chmod -R u=rwX,g=rX /sciezka
i wszystkie foldery w /sciezka będą miały drwxr-x---, zwykłe pliki -rw-r-----, chyba że były przez kogoś wykonywalne to -rwxr-x---.