Pagina 1 di 1

comando di bash

MessaggioInviato: 03/01/2018, 17:45
da samiel
Scusate la mia crassa ignoranza, ma avendo un comando di questo tipo:
Codice: Seleziona tutto
find . -type f -name '*.odt' -exec chmod 644 {} \;

come posso aggiungere altri tipi di file, ovvero: qual è la sintassi corretta
per applicare il comando a più tipi di file? Sparo:
Codice: Seleziona tutto
'*.odt,*.otf,*.txt'

Cercando in giro ho trovato sintassi varie, non capisco se equivalenti:
Codice: Seleziona tutto
".*\.(jpg|gif|png|jpeg)"

e quindi
Codice: Seleziona tutto
( -name "*cache" -o -name "*xml" -o -name "*html" \)


grazie
m

Re: comando di bash

MessaggioInviato: 03/01/2018, 20:32
da byte64
sulla mia testing così funziona perfettamente :
Codice: Seleziona tutto
find . -type f -name '*.txt' -o -name '*.tmp' -o -name '*.sh'

Ciao

Re: comando di bash

MessaggioInviato: 03/01/2018, 21:09
da samiel
ma poi ti prende anche il comando -exec chmod? Perché
Codice: Seleziona tutto
find . -type f -name '*.txt' -o -name '*.pdf' -o -name '*.png' -o -name '*.gif' -o -name '*.odt' -exec chmod 644 {} \;

mi cambia i permessi solo ai file .odt (in generale agli ultimi elencati), non ai tipi di file inseriti in precedenza

.

Re: comando di bash

MessaggioInviato: 03/01/2018, 22:13
da byte64
Vero...non avevo testato con -exec, e come a te non andava nemmeno a me.....
Dopo qualche prova così ha funzionato: (attenzione agli spazi)
Codice: Seleziona tutto
find . -type f \( -name '*.txt' -o -name '*.tmp' -o -name '*.sh' \) -exec chmod 644 {} \;

Ciao

Re: comando di bash

MessaggioInviato: 03/01/2018, 22:23
da samiel
Sì trovato grazie! anche io e così perfezionato per i miei scopi:
Codice: Seleziona tutto
find . -type f  \( -iname '*.txt' -o -iname '*.pdf' -o -iname '*.png' -o -iname '*.gif' -o -iname '*.odt' -o -iname '*.jpg' \) -exec chmod 644 {} \;