[gull] Petit pb shell

Félix Hauri felix at f-hauri.ch
Wed Nov 12 21:46:01 CET 2003


On Wed, 12 Nov 2003, Eric Piollet wrote:

> Je recherche des images sur un Disk Dur et j'aimerais copier celles ci dans
> un répertoire donné .
> J'ai du mal à trouver la bonne commande avec find & cp
Tu veux une réponse longue?

#!/bin/sh
export srcpath=${1:-.}
export dstpath=${2:-/tmp/tempimages}
declare -i i
export i fnbody fname file
mkdir -p $dstpath
find $srcpath -type f -print | \
    while read file;do
	if file "$file" | \
		tr A-Z a-z | \
		grep -q '\(jpe?g\|gif\|png\|p[pbng]m\|tif+\|gimp\|gem\).*image data'
	then
	    fname="$(basename $file)"
	    if [ ! -f "$dstpath/$fname" ] ;then
		cp -v "$file" "$dstpath/$fname"
	    else
		fnbody="${fname%.*}"
		fnext="${fname##*.}"
		i=1
		[ ${#fnbody} -lt 1 ] && \
		    fnbody=_image
		while :;do
		    if [ -f "$dstpath/${fnbody}_$i.$fnext" ] ;then
			echo -n "B"
			i=i+1
		    else
			echo -n "REN:"
			cp -v "$file" "$dstpath/${fnbody}_$i.$fnext"
			break
		    fi
		done
	    fi
	fi
    done

# Ça défoule!
#
# Reste à éliminer les doublons
# voire les commandes md5sum et cmp...

--
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch





More information about the gull mailing list