Pagina 1 di 1

script - (mv - cp - sed )

Inviato: ven 20 mag 2011, 0:13
da vanescar
ciao a tutti...
per un mia comodita e curiosita sto scrivendo uno script per aggiornare il mio server , ma nn riesco a trovare il comando che mi copia il contenuto di una directory in un altra modificando tutti i file con un prefisso "_mioscript"

cp /mia/directory/*.sh /altra/directory/*_mioscript.sh

_mioscript voglio mettere questo a tutti i file che contiene quella directory in un altra, come posso fare ?

Re: script - (mv - cp - sed )

Inviato: ven 20 mag 2011, 0:26
da targzeta
Potresti spendere un attimo di più per spiegarti un po' meglio? Cioé tu vuoi che vengano copiati "solo" tutti i file '.sh' e vuoi che nella directory di destinazione venga aggiunto il prefisso(?) _mioscript? Ad esempio:

Codice: Seleziona tutto

cp /mia/directory/casa.sh /altra/directory/casa_mioscript.sh
giusto?

Emanuele

Re: script - (mv - cp - sed )

Inviato: ven 20 mag 2011, 0:33
da darkstaring
Puoi far così:

Codice: Seleziona tutto

#!/bin/bash
cd /mia/directory/
for i in *.sh
do
        cp $i /dove/li/metti/$i_mioscript.sh;
done

Re: script - (mv - cp - sed )

Inviato: ven 20 mag 2011, 0:55
da Blallo
ma così non si chiamarebbero poi pippo.sh_mioscript.sh?

Re: script - (mv - cp - sed )

Inviato: ven 20 mag 2011, 1:15
da targzeta
Aggiungo un'altra osservazione a quella di jimmy_page_89. E se la directory ha una sottodirectory? Che bisogna fare? La soluzione proposta non funzionerebbe.

Ecco perché pregherei vanescar di essere un po' più "preciso", per quanto la precisione secondo me è solo un concetto personale :D.

Preciso che non voglio fare il bacchettone di turno, vorrei solo capire bene il problema per dare una soluzione ottimale. A seconda di cosa si vuole fare ci sono varie soluzioni più o meno buone. Ho il dubbio che i miei post diano un'impressione sbagliata sul mio intento :)

Emanuele

Re: script - (mv - cp - sed )

Inviato: ven 20 mag 2011, 2:15
da d4z_c0nf
Beh avete ragione entrambi.
Per il problema sollevato da jimmy, bisogna utilizzare gli operatori sulle stringhe:
Il "cp" all'interno del for, diventa

Codice: Seleziona tutto

cp $i /dove/li/metti/${i%%.sh}_mioscript.sh;
Per l'osservazione di Spina, immagino che voglia sapere se è necessario o meno utilizzare find, per fare una cosa più pulita, ma anche il quel caso quell'operatore sarà essere utile.

Offtopic: Spina, solo chi non ti ha mai letto prima può pensare male. Ma anche se così fosse, il problema è che non c'è un modo "non bacchettone" di chiedere una maggiore precisione :D

Re: script - (mv - cp - sed )

Inviato: ven 20 mag 2011, 8:30
da vanescar
scusate se non sono stato esaustivo nel porvi il problema...
comunque l'operatore di stringe all'interno di for ha funzionato, ora sono molto contento .. Grazie a tutti