Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 Re : Scripts, programmes et robots » CP » 25-09-2022 14:00:39

merci effectivement avec -iname c'est mieux

find  /home/clients/b313813ae3dfa81e21eb5a95d7ad323f/sites/mututest.spipfactory.fr -type d iname 'pdf' -execdir -sh -c 'reduc-pdf.sh' \;




me reste a lancer le script reduc-pdf.sh


grace a vous, j'avance, j'apprend , c'est top
allez je me replonge dans la doc pour trouver comment lancer mon .sh derriere execdir

#2 Re : Scripts, programmes et robots » find et mkdir » 25-09-2022 13:52:20

vv222 a écrit :

Il n‘y a pas de find dans la commande que je t’ai proposée wink



arffffffffff j'avais pas compris ça , et bien c'est pas gagné , merci


effectivement c'est plus mieux comme ça big_smile

#3 Re : Scripts, programmes et robots » CP » 25-09-2022 13:23:03

rhooooooooo que d'aide , merci.gifmerci.gifmerci.gif


Alors effectivement la commande

## on copie le script bash pour la compression
 find  /home/clients/b313813ae3dfa81e21eb5a95d7ad323f/sites/mututest.spipfactory.fr -type d -iname 'pdf' -execdir cp /home/clients/b313813ae3dfa81e21eb5a95d7ad323f/cron/reduc-pdf.sh {} \;
 



fonctionne nickel cool


par contre avant de taper dans le fichier reduc-pdf.sh pour essayer ce que vous avez bien voulu m'indiqué dans ma courbe d'aprentissage

j'aimerais bien déjà pouvoir le lancer help.gif

j'ai tenter

find  /home/clients/b313813ae3dfa81e21eb5a95d7ad323f/sites/mututest.spipfactory.fr -type d iname 'pdf' -execdir -sh -c 'reduc-pdf.sh' \;



alors j'ai compris execdir ; pour le lancer dans le dossier (https://debian-facile.org/doc:systeme:find)

mais erreur
find: paths must precede expression: iname
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

-type d iname 'pdf'  , ça veu bien dire cherche dans les repertoire pdf ??

j'avoue kernal_panic.gif

#4 Re : Scripts, programmes et robots » find et mkdir » 25-09-2022 10:59:58

dsl mais je decouvre bash et si je fais :
la ligne exact me retourne


find /home/clients/b313813ae3dfa81e21eb5a95d7ad323f/sites/ mkdir --parents /home/clients/b313813ae3dfa81e21eb5a95d7ad323f/sites/*/IMG/pdf/{ORIGINAUX,COMPRESSER}



find: unknown predicate `--parents'


en tous cas merci pour vos conseils j'avance dans ma decouverte de la ligne de commande

#5 Re : Scripts, programmes et robots » CP » 25-09-2022 10:37:58

cyrille a écrit :

Attention à la syntaxe

      reduc=${ls *.pdf}




pour info

./reduc-pdf.sh: line 4: ${ls *.pdf}: bad substitution

#6 Re : Scripts, programmes et robots » CP » 25-09-2022 10:37:11

cyrille a écrit :

est ce que mon probléme est bien expliqué ?


Il a quand même bien changé depuis le 1er thread wink




sans doute certe,
mais l'idée est toujours de réduire les pdfs sur un hebergement sur des repertoire créer par les hébergés

j'avais sans doute mal posé le pb

en tout cas merci pour les pistes je vais regarder

#7 Re : Scripts, programmes et robots » CP » 25-09-2022 10:08:20

merci pour la piste

donc je pourais pas faire car je connais pas le repertoire de destination a l'avance.
peu etre que je me fourvoie ?


je repose mon pb de départ

j'ai des fichiers pdf que je souhaite réduire.
les pdf sont dans une structure que je connais pas par avance (aaa,bbb, etc... etant créer lors de l'install j'ai pas la main la dessus)
/home/site/aaa/IMG/pdf
/home/site/bbb/IMG/pdf
etc ...

je voulais appliquer  sur l'ensemble des pdf la réduction

 gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="???"
 done
 



la sortie me poser probléme
du coup
# crée une liste des fichiers
      reduc=`ls *.pdf`
      # Pour chaque nom de fichier de la liste
      for fich in $reduc
     do

et la ligne deviens

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="$fich"
 done
   



j'ai bien tous les pdf de réduit


peu être existe t'il une autre solution ou une autre piste pour $fich


est ce que mon probléme est bien expliqué ?

ps/ sympa https://cbiot.fr/dokuwiki/chess, moi qui suis pousseur de bois en d4 et f4

#8 Re : Scripts, programmes et robots » CP » 25-09-2022 09:46:44

cyrille a écrit :

bjr,

AMA qy'il te manque les {} après cp pour rappeler le nom du fichier source

find /Rep/de/Recherche/ -name '*.pdf' -exec cp "{}" /Rep/De/Destination  \;



++Cyrillle




bon bon

find /home/sites/ -name 'pdf' -exec cp "{/home/cron/reduc-pdf.sh}" --parents /home/sites/*/IMG/pdf/ \;


cp: failed to access ‘/home/sites/*/IMG/pdf/’: Permission denied

donc je penser écrire

recherche tous les repertoire /pdf dans /sites
copie le fichier reduc-pdf.sh
dans tous les repertoires /IMG/pdf de /sites


mais j'y suis pas arrivé, c'est pas facile le bash , je comprend mieux l'expression se faire "baché"
définition : écrire une ligne en Bash qui fonctionne pas

#9 Re : Scripts, programmes et robots » CP » 25-09-2022 09:30:18

golgot200 a écrit :

Bonjour,

il manquerait pas ton user par hasard ? wink


/home/?/cron/
 




merci de t'interessé a mon soucis
du coup je me renseigne sur "user"

Toute entité (personne physique ou programme particulier) devant interagir avec un système UNIX est authentifiée sur cet ordinateur par un utilisateur ou “user”.




mais du coup je pose la ligne compléte parceque la je comprend pas ta piste

find  /home/clients/sites/ -type d -iname 'pdf' -execdir cp /home/cron/reduc-pdf.sh --parents /home/sites/*/IMG/pdf/\;
 



je penser que ça voulais dire

copie le bash reduc-pdf se trouvant dans le répertoire /cron dans tous les répertoires  /IMG/pdf  du répertoire /sites


exemple
exemple j'ai :
- /home/sites/aaa
- /home/sites/bbb
- /home/sites/ccc

Après cette commande je voudrais :
- /home/sites/aaa/IMG/pdf/reduc-pdf.sh
- /home/sites/bbb/IMG/pdf/reduc-pdf.sh
- /home/sites/ccc/IMG/pdf/reduc-pdf.sh


ps/ cyrill a poster avant donc je regarde ça  .....

#10 Scripts, programmes et robots » CP » 24-09-2022 22:22:21

spipfactory
Réponses : 18
hi hi c'est con mais j'arrive pas a deplacer mon fichier d'un repertoire vers un autre ...

## on copie le script bash pour la compression
find  /home/sites/ -type d -iname 'pdf' -execdir cp /home/cron/reduc-pdf.sh \;
 



on recherche dans /home/site tous les repertoire pdf et on copie le fichier .sh

bon et bien raté
cp: missing destination file operand after ‘/home/cron/reduc-pdf.sh’


bien entendu j'ai lu https://debian-facile.org/doc:systeme:cp et j'ai essayer plein de truc

je découvre la puissance et les joies du bash mal écrit smile et j'en chie tongue

#12 Re : Scripts, programmes et robots » find et mkdir » 24-09-2022 18:37:35

donc

find  /home/sites/ -type d -iname 'IMG' -execdir mkdir -p {}/pdf/{ORIGINAUX,COMPRESSER} \;




merci a vous wink




du coup je fais comme cela mais je ne suis pas pro du code

# compresser les pdfs
## on créer les répertoires ORIGINAUX & COMPRESSER dans /IMG/pdf qui vont servir a la compression des pdf
find  /home/sites/ -type d -iname 'IMG' -execdir mkdir -p {}/pdf/{ORIGINAUX,COMPRESSER} \;
## on compresse
find /home/sites -type d -exec /home/clients/b313813ae3dfa81e21eb5a95d7ad323f/cron/reduc-pdf.sh \{} \;
## on efface le repertoire ORIGINAUX
find /home//sites/ -depth -type d -iname 'ORIGINAUX' -exec rm -r '{}' \;

## on déplace les fichiers de COMPRESSER dans /IMG/png
find /home//sites/ -iname '*.pdf' -exec mv -t ../pdf {} +

## on efface le repertoire COMPRESSER
find /home/sites/ -depth -type d -iname 'COMPRESSER' -exec rm -r '{}' \;



le script reduc-pdf.sh étant

# crée une liste des fichiers
      reduc=`ls *.pdf`
      # Pour chaque nom de fichier de la liste
      for fich in $reduc
     do
     # applique le traitement et met le résultat dans le répertoire MAIGRES
 gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="COMPRESSER/$fich" "$fich"
 done

#13 Re : Scripts, programmes et robots » find et mkdir » 24-09-2022 18:20:25

yo alors pour vv222
pour 

mkdir --parents /home/sites/*/IMG/pdf/{ORIGINAUX,COMPRESSER}



ça creer un repertoire ORIGINAUX ET COMPRESSER mais a la racine dans un répertoire * de site donc pas dans
/home/sites/????/IMG/pdf/

yo Croutons
alors oui je cherche le repertoire /IMG et dedans je veux créer les répertoires ORIGINAUX et COMPRESSER

donc

find  /home/sites/URL/ -type d -iname '*png*' -execdir mkdir -p {}/IMG/pdf/{ORIGINAUX,COMPRESSER} \;




faudrais que je puisse ecrire ça donc


find  /home/sites/URL/ -type d -iname 'LE REP /IMG' -execdir mkdir -p {}/pdf/{ORIGINAUX,COMPRESSER} \;



et la ça devrais le faire

#14 Re : Scripts, programmes et robots » find et mkdir » 24-09-2022 13:09:17

hummmmmm

xxx : est une url de site  se trouvant dans une arbrescence sous la forme

/home/sites/URL/

d'onc creer les fichiers dans
/home/sites/URL/IMG/pdf



l'idée est toujours de passer la commande sur les pdfs
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="COMPRESSER/$fich" "$fich"


suis je plus clair?

#15 Re : Scripts, programmes et robots » find et mkdir » 24-09-2022 12:57:57

je souhaite creer mes repertoire dans xxxx /IMG/pdf/

mais je ne connais pas xxx d'avance

je sais pas si j'ai été clair

#16 Scripts, programmes et robots » find et mkdir » 24-09-2022 11:50:29

spipfactory
Réponses : 12
Bon bon

j'ai beau retourné le pb dans tous les sens, je trouve pas la bonne syntaxe pour créer 2 répertoires dans un répertoire
sachant que

j'ai pensé a , mais cela fontionne pas ,
find /home/sites  -iname '"png"' -execdir sh -c 'mkdir -p IMG/pdf/{ORIGINAUX,COMPRESSER}' \;

la ligne mkdir -p IMG/pdf/{ORIGINAUX,COMPRESSER} fonctionne
mais j'arrive pas a utiliser find pour l'execution



une idée  merci

#17 Re : Scripts, programmes et robots » RESOLU / Ghostscript + pdf + compression » 23-09-2022 20:41:33

bon bon est ce qu'il y a moyen d'ecrire ça en une seul commande
 

#! /bin/bash
  #Réduire le poids des fichiers pdf du répertoire "pdf"
  # Dans le répertoire ORIGINAUX les fichiers originaux
      # Dans le répertoire COMPRESSER ceux compressés
      mkdir ORIGINAUX
      mkdir COMPRESSER
      # crée une liste des fichiers
      reduc=`ls *.pdf`
      # Pour chaque nom de fichier de la liste
      for fich in $reduc
     do
     # applique le traitement et met le résultat dans le répertoire COMPRESSER
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="COMPRESSER/$fich" "$fich"
done
   

Ce que je cherche a faire c'est balayer une arborescence, je ne sais pas ou est le répertoire pdf
et compresser ceux-ci

vv222 ma déjà orienter sur un autre post , je partirais bien sur un truc du genre

find /home/sites/ -iname "*.pdf" -execdir gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="quoi mettre ? \;




bref je suis preneur de piste

@micalement stéphane

#18 Re : Scripts, programmes et robots » RESOLU / Webp + renomer dans un repertoire » 23-09-2022 18:49:28

Magnifique BINGO je l'aime le vv222

merci beaucoup et avec le lisible j'ai compris

#19 Re : Scripts, programmes et robots » RESOLU / Webp + renomer dans un repertoire » 23-09-2022 18:15:50

Alors je suis repartie d'une feuille blanche

j'ai bien la fonction qui me permet de passer mes images au format .webp

for i in $(ls *.jpg); do cwebp $i -o $i.webp && rename 's/.jpg//g' $i.webp; done

et j'ai bien dans mon repertoire
00_pascal_clement_ida_roux_zelie.jpg
00_pascal_clement_ida_roux_zelie.webp

nickel

par contre je ne sais pas dans mon arborescence ou ce trouve le repertoire jpg du coup comment dire

balaye tous les répertoire trouve le repertoire jpg et execute for i in $(ls *.jpg); do cwebp $i -o $i.webp && rename 's/.jpg//g' $i.webp; done


je penser a 
for repertoire in `find /home/sites/ "for i in $(ls *.jpg); do cwebp $i -o $i.webp && rename 's/.jpg//g' $i.webp; done"`; do $repertoire; done

mais j'ai Permission denied et en plus vv222 ma dit de pas utiliser for
bash: /home/sites/stef/IMG/jpg/euphemei_23.webp: Permission denied

du coup une piste

j'y suis presque  mad

#20 Re : Scripts, programmes et robots » RESOLU / Webp + renomer dans un repertoire » 23-09-2022 17:31:16

ok alors
execdir cwebp -mt {} -o "$(basename {} .png).webp" \;

fonctionne j'ai bien les fichiers dans mon repertoire

exemple
1.png
1.png.webp


j'arrive pas a avoir que 1.webp

#21 Re : Scripts, programmes et robots » RESOLU / Webp + renomer dans un repertoire » 23-09-2022 16:50:45

merci vv222 pour la piste et j'ai tester mais ............


Error! Unknown option '-z'
Usage:
cwebp [-preset <...>] [options] in_file [-o out_file]

If input size (-s) for an image is not specified, it is
assumed to be a PNG, JPEG, TIFF or WebP file.

bla bla bla  ......


donc si je vire le -z , ça fonctionne mais j'ai l'image en .png.webp et en .png


comment n'avoir que l'image avec l'extension .webp dans mon répertoire

#22 Scripts, programmes et robots » RESOLU / Webp + renomer dans un repertoire » 22-09-2022 22:40:15

spipfactory
Réponses : 7
Bonsoir,

je balaye un repertoire pour convertir mes images en .webp,  ça fonctionne bien  Mais ........
les images sont en png.webp, ors je les voudrais en .webp simplement et ne plus avoir les images sources

comment modifié ma ligne
une piste ?


for repertoire in `find /home/ -iname "*.png" -exec cwebp -z -mt {} -o {}.webp \; `; do $repertoire; done

#23 Scripts, programmes et robots » RESOLU / Ghostscript + pdf + compression » 22-09-2022 21:59:54

spipfactory
Réponses : 2
Bonsoir,

je souhaite compresser plusieurs pdf situés dans un dossier.
je penser écrire un truc du genre mais je bloque sur le critére de sortie et j'espére surtout que je prend la bonne route smile
sachant que je ne souhaite pas garder le source mais seulement le compresser

auriez vous une piste  , merci


for repertoire in `find /home/ -iname "*.pdf" -exec gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile="quoi mettre ????"`; do $repertoire; done

Pied de page des forums

Propulsé par FluxBB