[BASH] Altercation avec 'find -exec'
Mass est menacé
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
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
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
A voir également:
- [BASH] Altercation avec 'find -exec'
- Find and mount - Télécharger - Récupération de données
- Bingo bash - Télécharger - Divers Jeux
- Bash addition ✓ - Forum Shell
- Find vba - Astuces et Solutions
- Ava find - Télécharger - Divers Utilitaires
1 réponse
Salut,
Pas très esthétique ce que je te propose mais j'ai pas mieux pour l'instant :
;-))
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 fichiersOn 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".
;-))