Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: problémy s mezerama  (Přečteno 1049 krát)

alfonz19

  • Člen
  • **
  • Příspěvků: 219
    • Zobrazit profil
problémy s mezerama
« kdy: 14 Dubna 2009, 08:51:53 »
Zdar,

s tímhle bojuju už dlouho a furt na to nemůžu přijít. Dejme tomu, že mám miliardu souborů, které mají špatná práva (ve skutečnosti mám tyhle problémy i v jiné sféře) a chci je změnit.

tohle nezafunguje, protože se soubory polámou podle mezer a začnu měnit práva neex. souborům
Kód: [Vybrat]
chmod 644 `find ./ -type f`
tohle samozřejmě projde, ale spousta souborů nebude správně nastavena
Kód: [Vybrat]
chmod 644 `find ./ -type f | grep -v " "`
zkoušel jsem tohle
Kód: [Vybrat]
chmod 644 "`find ./ -type f`"ale výsledek byl
Kód: [Vybrat]
bash: /bin/chmod: Argument list too long
Ok, pokud je tomu skutečně tak, že jsem jen předal příliš mnoho parametrů (netuším proč by k tomu mělo dojít), pak to můžu přepsat do for cyklu, ale to je stejná past protože budu muset jednotlivé soubory uzávorkovat a oddělit čárkami abych to narval do for cyklu. Zkoušel jsem nějak nastavit proměnnou IFS o které jsem se nedávno tomu dozvěděl, ale výsledné chování bylo více než zábavné (vhodným nastavením IFS mi přestalo fungovat prakticky vše a musel jsem vypnout&zapnout terminál). Jak je možné tuto situaci vyřešit jednodušeji?

nettezzaumana

  • Host
Re: problémy s mezerama
« Odpověď #1 kdy: 14 Dubna 2009, 08:57:18 »
## `man bash` .. !! uvozovky
find . -type f | while read line; do chmod 644 "$line"; done


## !! `man find`
find . -type f -exec chmod 644 '{}' \;

## ad.x) pokud si neco rozhodis nastavenim nejake promenne aka FOO tak ji snad staci jen flushnout pomoci `unset FOO` misto restartu terminalu ..
« Poslední změna: 14 Dubna 2009, 10:41:10 od nettezzaumana »

 


Provoz zaštiťuje spolek OpenAlt.