[Risolto] Copiare tutti gli script in una cartella

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Pehua
Prode Principiante
Messaggi: 241
Iscrizione: martedì 19 aprile 2022, 9:02
Desktop: Ubuntu
Distribuzione: Ubuntu 22.04.4 LTS
Sesso: Maschile

[Risolto] Copiare tutti gli script in una cartella

Messaggio da Pehua »

Ciao, ho provato questo piccolo codice per cercare e poi copiare tutti gli script trovati in una cartella, ma non so come far uscire la copia dei file per copiarli nella cartella scelta:

Codice: Seleziona tutto

mkdir ~/Scrivania/script
cd ~/Scrivania/script
scri=`find ~/Documenti -iname *.sh | cp *.sh .` # o cp "$scri" .

# Non funzionano entrambi
Come gli "dico" di copiare ogni script trovato nella cartella?
Ultima modifica di Pehua il mercoledì 15 febbraio 2023, 14:16, modificato 1 volta in totale.
Al di la delle impostazioni culturali :birra:
Avatar utente
GjMan78
Rampante Reduce
Rampante Reduce
Messaggi: 5503
Iscrizione: mercoledì 22 novembre 2006, 19:15
Desktop: KdePlasma
Distribuzione: EndeavourOS
Sesso: Maschile
Località: ~/Italia/Lazio/Viterbo/

Re: Copiare tutti gli script in una cartella

Messaggio da GjMan78 »

Se per "script" intendi tutti i file con estensione sh è sufficiente un semplice cp.

Codice: Seleziona tutto

cp /cartella/di/origine/*.sh /cartella/di/destinazione
Lasciamo riposare l'Ufficio "Complicazioni Affari Semplici" :D
MacBook Pro - Intel i5-3210 - 16 Gbyte Ram DDR3 - SSD 500 Gbyte x 2
»»» 𝗙𝗮𝗶 𝗶𝗹 𝗕𝗮𝗰𝗸𝘂𝗽! ¯\_(ツ)_/¯
Avatar utente
Pehua
Prode Principiante
Messaggi: 241
Iscrizione: martedì 19 aprile 2022, 9:02
Desktop: Ubuntu
Distribuzione: Ubuntu 22.04.4 LTS
Sesso: Maschile

Re: Copiare tutti gli script in una cartella

Messaggio da Pehua »

GjMan78 ha scritto:
mercoledì 15 febbraio 2023, 12:51
Se per "script" intendi tutti i file con estensione sh è sufficiente un semplice cp.

Codice: Seleziona tutto

cp /cartella/di/origine/*.sh /cartella/di/destinazione
Lasciamo riposare l'Ufficio "Complicazioni Affari Semplici" :D
Ciao, eh no, in quella cartella ho diverse sottocartelle che contengono script ed appunto vorrei unificarli, anche se la cosa è più a scopo didattico o se vogliamo, di curiosità.

Ho trovato la soluzione ma l' unica cosa che non funziona e non capisco perchè è se la cartella già esiste, mi da errore nel terminale la cartella gia esiste, ma non dovrebbe darmelo :devilmad: almeno secondo me :lol:

Codice: Seleziona tutto

if [ -d "~/Scrivania/script" ]; then

find ~/Documenti -iname "*.sh" | while read i; do 
        cp -a "$i" ~/Scrivania/script/; 
        
done

else

mkdir ~/Scrivania/script

find ~/Documenti -iname "*.sh" | while read i; do 
        cp -a "$i" ~/Scrivania/script/; 
done

fi

exit 0
A parte che non volevo ripetere il comando principale di ricerca e copia, ma le mie cono scenze sono scarse in materia, ma neanche vorrei errori se la cartella gia esiste.

A quanto ho capito la logica dice che se la cartella esiste allora da il comando ricerca e copia, altrimenti (else), crea la cartella e lancia il comando ricerca e copia.

Perche allora se la cartella gia esiste mi da errore? (Anche se poi lo script funziona?)

EDIT

Ho risolto tutto, lo script funziona e, misteri del bash, bastava usare doopie parentesi quadre:

Codice: Seleziona tutto

if [[ -d "~/Scrivania/script" ]]; then  # cosi funziona
:) Tutto bene quel che finisce bene!! :ciao:

EDIT2 (La vendetta)

Trovato anche un sistema per non scrivere due volte lo stesso comando, era piu facile se esisteva il modo di dire a test di controllare se NON esisteva la cartella, ma va beh, ho inventato questa souzione e funziona;

Codice: Seleziona tutto

if [[ -d ~/Scrivania/script ]]; then

find ~/Documenti -iname "*.sh" | while read i; do 
        cp -a "$i" ~/Scrivania/script/; 
        
done

else

mkdir ~/Scrivania/script

$0

fi

exit 0
Ciauxxx
Al di la delle impostazioni culturali :birra:
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: ductive e 20 ospiti