GNU/Linux >> Linux Esercitazione >  >> Linux

Omissione dell'estensione con Trova?

Ho bisogno di creare miniature da più file .png e vorrei farlo usando ImageMagicks convert utilità. Per trovare ricorsivamente tutti i file che non sono miniature stesse, sto usando la seguente chiamata (divisa in due righe per renderlo leggibile):

find . -type f -name "*.png" -not -name "*thumb.png*" 
  -exec convert {} -thumbnail 200x200 {}.thumb.png ;`

Ma questo ovviamente creerebbe un file chiamato a.png.thumb.png durante l'esecuzione su un file chiamato a.png . Come posso rimuovere il .png estensione dal secondo {} parametro passato da convertire?

Risposta accettata:

Il modo più semplice per farlo è passare il {} via a una shell come sh e fallo fare alla shell:

find ... 
    -exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} ;

Linux
  1. Sostituisci find con fd su Linux

  2. Come controllare i permessi con il comando trova

  3. Trova un file con i comandi Trova e individua in Linux

  4. Trova i file e tarali (con spazi)

  5. Come trovare tutti i file con una particolare directory principale in Linux?

Come trovare applicazioni installate con dimensioni installate in Linux

Trova le informazioni sull'hardware del sistema Linux con Hwinfo

Trova i file persi con Scalpel

Come rimuovere file con estensione specifica in Linux

Come trovare file con il comando fd in Linux

Tutorial comando trova Linux (con esempi)