Vous n'êtes pas identifié(e).
2/ autre paramètre, le nombre de fichiers à traiter est variable.
quel script pourrait dire au programme de s'appliquer tant qu'il y a des fichiers dans "repertoire" ?
merci d'avance.
Cordialement.
debianux
ps: j'ai cherché, rapidement, mais n'ai pas trouvé une source pour débuter dans cet "art" du script ou de la commande "sophistiquée" (pour moi:)), avec les explications sur l'utilisation par exemple des { } . une piste ?
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
Dernière modification par debianux (20-11-2014 19:15:55)
Hors ligne
Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
Hors ligne
On peut aussi remplacer le :
par un truc du genre :
pour sélectionner tous les fichiers qui se trouvent dans
Cette solution suppose que le programme p ne sait traiter qu'un seul fichier à la fois. Est-ce le cas de ton programme ?
Voilà, si ça peut t'aider.
Hors ligne
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Exécutable de décryptage d'un fichier texte crypté apicrypt (corps d'email)
usage :
je suppose que l'on peut déduire que le programme ne sait traiter qu'un fichier à la fois.
le prestataire a très-très peu de clients sous linux, qui doivent donc essayer de se débrouiller
il y a un script en lien avec kmail, développé par un client du prestataire, mais qui, dans le cas qui me préoccupe, ne fonctionne pas comme il devrait.
et en attendant, j'essaye de mettre à disposition une solution intermédiaire entre un "rien" numérique et le script flamboyant
Hors ligne
et le script flamboyant
T'as raison debianux, y faut brûler tous les scripts !
Pardon... j'ai pas pu résister !
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Cette commande lance 'p' une seule fois en lui donnant comme argument tous les fichiers sous 'repertoire'.
Celle-ci lance 'p' une fois pour chaque fichier sous 'repertoire'. (équivalent de la boucle 'for' postée par enicar)
Hors ligne
et ça ne décrypte pas
lorsque apiuncrypt est lancé depuis le repertoire apicrypt, ça marche car il trouve le sous-repertoire "Clefs" qui lui est nécessaire.
j'essaye donc de lui dire où elles sont (on se croirait dans fort boyard )
serait-ce que quelque chose soit mal placée, "à l'insu de mon plein gré" ?
Hors ligne
Hors ligne
il ne "tousse" plus mais ça ne décrypte pas
Hors ligne
il me faut reconnaître que je ne comprends pas grand chose à ce que je fais
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Hors ligne
To check which pathnames are selected, execute the find command without the -execdir option:
donc vérif :
et :
It may be helpful to use the pwd to display the directory in which each command will be executed. This requires some trickery to prevent pwd from being executed prematurely:
find ~/src/foo-1.0.0 -name "*.pl" -type f -execdir sh -c "echo \`pwd\` chmod 755 {}" \;
(Note that spaces and other special characters will not be escaped in the commands as listed.)
j'essaye :
donc on est bien dans le bon répertoire des fichiers. le fichier "txt" est un fichier décrypté en direct ce qui montre que le programme de décryptage fonctionne.
Hors ligne
-execdir command {} +
Like -exec, but the specified command is run from the subdirec-
tory containing the matched file, which is not normally the
directory in which you started find. This a much more secure
method for invoking commands, as it avoids race conditions dur-
ing resolution of the paths to the matched files. As with the
-exec option, the '+' form of -execdir will build a command line
to process more than one matched file, but any given invocation
of command will only list files that exist in the same subdirec-
tory. If you use this option, you must ensure that your $PATH
environment variable does not reference the current directory;
otherwise, an attacker can run any commands they like by leaving
an appropriately-named file in a directory in which you will run
-execdir.
the specified command is run from the subdirec-
tory containing the matched file
or apiuncrypt est censé ne fonctionner que dans le répertoire "apicrypt" à cause des clés et sans doute de "path" internes (?)
et les fichiers à traiter sont dans "new", dans lequel execdir essaye de faire fonctionner apiuncrypt.
find peut-il fonctionner comme imaginé dans ce cas ?
et donc, ça y est :
j'ai mal au crâne
Hors ligne
Ou sans find :
Il y a deux différences entre les deux méthodes.
La seconde méthode ne prendra pas en compte les fichiers dont le nom commence par un point et elle ne descend pas dans l'arborescence.
Je pense que dans ton cas, ça ne fera aucune différence.
Je dois ajouter qu'un programme qui ne peut fonctionne que dans un répertoire est mal fichu.
Il y a peut être moyen de lui préciser où il se trouve par le moyen de variables d'environnement.
Dernière modification par enicar (21-11-2014 12:56:22)
Hors ligne
Hors ligne
Voilà !
Dernière modification par enicar (21-11-2014 18:29:29)
Hors ligne
captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Hors ligne
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Hors ligne
pour l'instant, ça liste le contenu de "new"
ach
merci enicar !
pour faciliter la vie de l'utilisateur, est-il possible de faire un script qui lancerait les deux commandes ?
ps : je sais bien que je ne suis pas "initié" mais est-ce que j'ai le droit de savoir ce que signifie
/me lance [ code=bash ] sur enicar
?
Hors ligne