[BASH] Altercation avec 'find -exec'

Fermé
Mass est menacé - 10 déc. 2005 à 15:17
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 10 déc. 2005 à 17:35
Bonjour à tous les lecteurs.

J'essaye de rediger un petit script en ce moment. Il a pour role de signaler un ensemble de fichiers à mettre à jour. Il faut tout d'abord afficher tout les fichiers d'un repertoire avec leur date de modificatiopn. Cette liste de fichiers est affichee sur la sortie standard. L'affichage est issu de la commande :
find . -printf "%TY%Tm%Td%TH%TM.%TS %h%f\n\r"
Rq : L'affichage a la structure suivante :
<date de la forme SSAAMMJJHH.SS> <chemin d'acces du fichier>

Les tests se passent à merveille jusqu'au moment ou je veux compter le nombre de ligne a la sortie. Je remplace ma commande par :
nbl=0
find . -printf "%TY%Tm%Td%TH%TM.%TS %h%f\n\r" -exec nbl=$[ $nbl + 1 ] \;
Et l'insulte qu'on m'envoie est 'find: nbl=1: Aucun fichier ou répertoire de ce type' en sachant que $[ $nbl + 1 ] retourne 1 donc nbl=$[ $nbl + 1 ] <=> nbl=1.

Si quelqu'un à une solution à ce probleme ou au pire une quelconque alternative, je lui serait reconnaissant de bien vouloir me la communiquer avec quelques explications.
Merci de votre attention.

Mass

1 réponse

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
10 déc. 2005 à 17:35
Salut,

Pas très esthétique ce que je te propose mais j'ai pas mieux pour l'instant :
find . -printf "%TY%Tm%Td%TH%TM.%TS %h %f\n\r" | tee fichiers && wc -l fichiers && rm -f fichiers
On redirige sur la sortie standard (écran) et dans un fichier (fichiers) grâce à la commande "tee", puis on comptabilise le nombre de lignes avec la commande "wc -l" et on efface le fichier créé sans demander confirmation "rm -f".
;-))
0