webForumDet fria alternativet

Ytterligare ett bash skript

Linux & BSDur Mac OS, Unix, Linux & BSD

7 svar · 246 visningar · startad av Chavez

ChavezMedlem sedan maj 20001 953 inlägg
#1

Hejsan!

Är så dålig på detta så jag hoppas att någon kan hjälpa mig. Hur chmoddar jag alla kataloger till en viss chmod (777) och alla filer till en annan (664) rekursivt i ett katalogträd?

Tacksam för hjälp.

RoggerMedlem sedan jan. 2000566 inlägg
#2

Jag brukar göra det enkelt för mig och köra 777 även på fílerna. ;) 'chmod -R 777 filerna*' fixar det lätt.

/R

ChavezMedlem sedan maj 20001 953 inlägg
#3

Det brukar jag med göra. Men denna gången vill jag inte det, vill ha 664 på filerna och 777 på katalogerna.

kruttaMedlem sedan jan. 200254 inlägg
#4

Detta borde fungera:

for a in `find`; do [ -d $a ] && chmod 777 $a || chmod 664 $a; done

ChavezMedlem sedan maj 20001 953 inlägg
#5

Fick bara mänger av "Katalogen eller filen finns inte". Men den anger ändå en sökväg när den slänger ut det felmeddelandet.

kruttaMedlem sedan jan. 200254 inlägg
#6

Står Du i katalogen där filer och underkatalogerna finns?
Alltså på dem som skall ändras rättigheter på?

Annars får Du ändra lite.
Typ:
for a in `find /home/kalle/katalognamn`; do [ -d $a ] && chmod 777 $a || chmod 664 $a; done

Fungerar jättebra här iaf.

ChavezMedlem sedan maj 20001 953 inlägg
#7

Ja, jag stod i rätt katalog. Skall kolla lite till. Tack för hjälpen iaf! Återkommer om det inte funkar denna gången heller ;)

GunnarDMedlem sedan juni 20014 290 inlägg
#8

jag skulle gjort det med två kommandon:

find /home/kalle/katalognamn -type d |xargs chmod 777
find /home/kalle/katalognamn -type f |xargs chmod 664

Den första letar efter kataloger och sätter 777 på dessa. den andra letar efter filer och sätter 664 på dessa.

130 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)