Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    91

    Come copiare con shell escludendo alcuni file?

    DIR SORGENTE
    /var/www/miosito/sorgente

    DIR DESTINAZIONE
    /var/www/tuosito/destinazione

    con questo comando copio tutti i file png dalla dir SORGENTE alla DESTINAZIONE
    cd /var/www/miosito/sorgente
    cp *.png /var/www/tuosito/destinazione

    DOMANDA: in questa copia vorrei escludere alcuni file png tipo quelli chiamati 3d_*.png

    come posso scrivere il comando ?

  2. #2

    Re: Come copiare con shell escludendo alcuni file?

    Originariamente inviato da ghibux
    DIR SORGENTE
    /var/www/miosito/sorgente

    DIR DESTINAZIONE
    /var/www/tuosito/destinazione

    con questo comando copio tutti i file png dalla dir SORGENTE alla DESTINAZIONE
    cd /var/www/miosito/sorgente
    cp *.png /var/www/tuosito/destinazione

    DOMANDA: in questa copia vorrei escludere alcuni file png tipo quelli chiamati 3d_*.png

    come posso scrivere il comando ?
    Allora, non l'ho provato però prova questo scriptino

    codice:
    #!/bin/bash
    
    CARTELLACORRENTE=/var/www/ecc
    CARTELLADIDESTINAZIONE=/var/www/ecc
    DAESCLUDERE=3d_*.png
    
    for i in $( ls ); 
    do
    	if [[ $i != $DAESCLUDERE ]]
            then
    		cp $CARTELLACORRENTE/$i $CARTELLADIDESTINAZIONE/
    	fi
    done
    Ovviamente dovrai modificare i parametri secondo le tue esigenze. Fammi sapere se non va
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  3. #3
    Ecco, un po meglio

    codice:
    #!/bin/bash
    
    CARTELLACORRENTE=/home/psykopear/Desktop/cartella/
    CARTELLADIDESTINAZIONE=/home/psykopear/Desktop/cartella/provadue/
    DAESCLUDERE=3d_*.png
    
    for i in $( ls ); 
    do
    	if [[ $i == *.png ]]
    		then
    			if [[ $i != $DAESCLUDERE ]]
    				then
    					cp $CARTELLACORRENTE/$i $CARTELLADIDESTINAZIONE/
    			fi
    	fi
    done
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,526
    ma non faceva prima con le espressioni regolari?premesso che io fatico a capirle

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    91
    INTANTO GRAZIE 1000

    ciao ho provato a fare il file
    ecco che mi dice quando lo lancio


    ./testcopy.sh
    ./testcopy.sh: line 12: syntax error near unexpected token `fi'
    ./testcopy.sh: line 12: ` fi'

  6. #6
    Originariamente inviato da detroit
    ma non faceva prima con le espressioni regolari?premesso che io fatico a capirle
    si sicuramente, però non sono ancora pratico

    @ghibux: hai provato con il secondo che ho postato? A me funziona correttamente

    codice:
    [psykopear@Arch cartella]$ touch prova{1,2,3}.png
    [psykopear@Arch cartella]$ touch 3d_prova{1,2,3}.png
    [psykopear@Arch cartella]$ ./elimina
    [psykopear@Arch cartella]$ ls
    3d_prova1.png  3d_prova3.png  prova1.png  prova3.png
    3d_prova2.png  elimina        prova2.png  provadue
    [psykopear@Arch cartella]$ cd provadue
    [psykopear@Arch provadue]$ ls
    prova1.png  prova2.png  prova3.png
    [psykopear@Arch provadue]$
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    91
    grazie 1000 psykopear
    funziona.

    unico problema ho dovuto mettere il file dello script shell nella stessa dir CARTELLACORRENTE

    invece io devo alloccarlo totalmente in un'altra path del server
    come modifico lo script?

    mettiamo di avere lo script shell in /var/www/private/scripts

    grazieeee

  8. #8
    Originariamente inviato da ghibux
    grazie 1000 psykopear
    funziona.

    unico problema ho dovuto mettere il file dello script shell nella stessa dir CARTELLACORRENTE

    invece io devo alloccarlo totalmente in un'altra path del server
    come modifico lo script?

    mettiamo di avere lo script shell in /var/www/private/scripts

    grazieeee
    a, perchè il comando ls lo da' nella cartella in cui si trova. Basta aggiungere un

    cd $CARTELLACORRENTE

    Primo del ciclo for
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

  9. #9
    mi aggancio alla discussione con un problema simile!
    io vorrei rimuovere tutti i file e le sottocartelle di una directory (rm ./*) tranne il file testo.txt e la sottocartella nome_directory (scusate la fantasia dei nomi)

    come si fa?
    grazie in anticipo
    L'erba calpestata da stivali militari diventa più forte mette le ali.
    Caccia bombardieri si schiantano per terra, soldati dell'impero disertano la guerra.

  10. #10
    Io userei "find" filtrando con un'espressione regolare, se le supporta

    --edit--
    Pare di sì: http://unixhelp.ed.ac.uk/CGI/man-cgi?find

    Dovrebbe essere una roba tipo
    codice:
    $ find -regextype posix-basic -regex '|!(testo.txt|nome_directory)$|' -exec rm {} \;
    (da testare, ora non sono su linux)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.