script - (mv - cp - sed )

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
vanescar
Linux 2.x
Linux 2.x
Messaggi: 334
Iscritto il: mer 11 mag 2005, 0:00
Slackware: 12.1
Contatta:

script - (mv - cp - sed )

Messaggio 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 ?

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: script - (mv - cp - sed )

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
darkstaring
Linux 3.x
Linux 3.x
Messaggi: 658
Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:

Re: script - (mv - cp - sed )

Messaggio 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

Avatar utente
Blallo
Packager
Packager
Messaggi: 3302
Iscritto il: ven 12 ott 2007, 11:37
Nome Cognome: Savino Liguori
Slackware: 14.2 / 12.2
Kernel: 4.4.14-smp
Desktop: DWM
Località: Torino / Torremaggiore (FG)
Contatta:

Re: script - (mv - cp - sed )

Messaggio da Blallo »

ma così non si chiamarebbero poi pippo.sh_mioscript.sh?

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: script - (mv - cp - sed )

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
d4z_c0nf
Packager
Packager
Messaggi: 1296
Iscritto il: mar 14 mar 2006, 18:07
Nome Cognome: Rocco Aliberti
Slackware: 14.2-current64
Kernel: 4.14.73
Desktop: awesomeWM
Località: Pinerolo

Re: script - (mv - cp - sed )

Messaggio 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

vanescar
Linux 2.x
Linux 2.x
Messaggi: 334
Iscritto il: mer 11 mag 2005, 0:00
Slackware: 12.1
Contatta:

Re: script - (mv - cp - sed )

Messaggio 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

Rispondi