Portál AbcLinuxu, 12. května 2025 15:20

Dotaz: Debian bash příkaz -exec

25.11.2013 22:00 BMWdejf
Debian bash příkaz -exec
Přečteno: 606×
Odpovědět | Admin
Zdravím Vás všechny potřeboval bych pomoct s bash příkazem.

Na svém serveru kde mám Debian potřebuji změnit oprávnění z 755 na 775 u všech složek a podsložek.

Pracuji především na Fedoře a tam mi funguje : find -type d -exec chmod 775 {}\; ale na Debianu mi to nefunguje a nevím proč mohl by mi někdo poradit?

Vím že existuje nápověda "man find" ale z toho to nějak nechápu potřebuji to nějak polopatě vysvětlit.

Předem děkuji za pomoc zkušenějších. :)

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (mhepp)
25.11.2013 22:26 Gejbriel007
Rozbalit Rozbalit vše Re: Debian bash příkaz -exec
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mezera před lomítkem.
25.11.2013 22:56 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Debian bash příkaz -exec
To bude trochu problém, protože v tom příkazu žádné není… :-)
26.11.2013 11:16 samo
Rozbalit Rozbalit vše Re: Debian bash příkaz -exec
ma pravdu s tym lomitkom

samuel@tiax:~/Knihy$ find -type f -exec chmod 755 {} \; chmod: menia sa práva....
26.11.2013 11:30 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Debian bash příkaz -exec
Nepochopil… "lomítko" a "backslash" jsou dva naprosto různé znaky s naprosto odlišným významem.
25.11.2013 22:30 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Debian bash příkaz -exec
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hele, pokud nepopíšeš přesněji jak se to chová, případně co to píše za chybu, tak Ti nikdo neporadí.

Jediné, co mne v této souvislosti napadá, je, že máš mezery v názvech adresářů, potom zkus "{}".

Nevidím důvod, proč by se měl find chovat jinak na Debian-u a na Fedoře. Když jsem to teď zkusil u sebe, výsledek byl ten očekávaný.

25.11.2013 22:56 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Debian bash příkaz -exec
Jediné, co mne v této souvislosti napadá, je, že máš mezery v názvech adresářů, potom zkus "{}".

V tom problém určitě není, find ty parametry předává přímo spouštěnému programu, to nejde přes shell.

Spíš bych tipoval, že na Debianu bude find méně benevolentní, takže (a) může vyžadovat, aby byl ukončující středník jako samostatný parametr, takže přidat mezeru mezi "{}" a "\;" nebo (b) nebude automaticky prohledávat aktuální adresář, když se mu žádný nezadá, tj. přidat "." mezi příkaz a první podmínku.

Např. na OpenSuSE 12.3 sice problém (b) projde, ale (a) už ne.

26.11.2013 00:25 mhepp | skóre: 22
Rozbalit Rozbalit vše Re: Debian bash příkaz -exec
je to ta mezera...

V Debian-u find sice vezme to, že nedostane adresář, ale mezera před lomítkem mu chybí...
26.11.2013 01:03 BMWdejf
Rozbalit Rozbalit vše Re: Debian bash příkaz -exec
Odpovědět | | Sbalit | Link | Blokovat | Admin
Díky všem za rady jdu to zkusit a pak dám vědět.
26.11.2013 10:17 Ja
Rozbalit Rozbalit vše Re: Debian bash příkaz -exec
Když na to nepřijdeš, zkus to obejít: find -type d -print0 | xargs -0 chmod 775 pravděpodobně projde.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.