Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156

    [BASH SCRIPTING] Eliminare solo un tipo di file in tutte le sottodirectory

    come devo procedere se io volessi eliminare non solo tutti i jpg contenuti in una directory, ma anche tutti i jpg nelle sottodirectory, lasciando però inalterati gli altri file?

    volevo scrivere uno script che eseguisse questo compito, ma credo che non me la potrei cavare con un semplice rm -R... in questo modo infatti elimino tutto quanto...
    non voglio che mi scriviate lo script, mi basta solo qualche suggerimento (sono ovviamente alle prime armi)...

    un grazie in anticipo a tutti...

  2. #2

    Re: [BASH SCRIPTING] Eliminare solo un tipo di file in tutte le sottodirectory

    Originariamente inviato da ilmo lesto
    come devo procedere se io volessi eliminare non solo tutti i jpg contenuti in una directory, ma anche tutti i jpg nelle sottodirectory, lasciando però inalterati gli altri file?

    volevo scrivere uno script che eseguisse questo compito, ma credo che non me la potrei cavare con un semplice rm -R... in questo modo infatti elimino tutto quanto...
    non voglio che mi scriviate lo script, mi basta solo qualche suggerimento (sono ovviamente alle prime armi)...

    un grazie in anticipo a tutti...
    qualcosa come

    rm /path/*.jpg /path/cartella/*.jpg

    Dovrebbe andare se ho capito bene il problema
    "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
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156
    io non conosco a priori il contenuto della directory. quindi potrebbero esserci più sottodirectory (o anche nessuna).
    quello che mi serve è poter eliminare tutti i jpg a partire da una directory specifica, lasciando però inalterate le sottodirectory stesse.

    lo script dovrebbe dunque navigare nelle varie sottodirectory (di cui non conosco a priori il nome nè il numero), trovare i jpg ed eliminarli...

    spero di essermi spiegato...

  4. #4
    codice:
    #!/bin/sh
    
    if [[ "$1" == "" ]]; then
       echo -e "Usage:\n\t$0 directory"
       exit 1
    fi
    
    remjpg () {
       
       for file in `ls $1`; do
          if test -d "$file"; then remjpg "$file"; echo "Entering directory $file"; fi
          filetype = `file "$file" | cut -d' ' -f2`
          if [[ "$filetype" == "JPEG" ]]; then rm "$file"; echo "Removed $file"; fi
       done
       
    }
    
    remjpg $1
    funziona ?


  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    156
    codice:
    find /path -iname "*.jpg" -delete
    ecco il comando che cercavo!
    non è ovviamente farina del mio sacco, ma di un'altra persona... mi è stata inoltre postata un'altra soluzione che utilizza due script... ma non l'ho testata, come nemmeno quella postata poco sopra da menphisx...

    alla fine utilizzerò il find che funziona egregiamente...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.