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 24-09-2022 22:22:21

spipfactory
Membre
Lieu : Web 2.0 Chez World Wide Web
Distrib. : Debian GNU/Linux 8.11 (jessie)
Noyau : Linux 4.9.0-0.bpo.12-amd64
(G)UI : sans
Inscription : 22-09-2022
Site Web

CP

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

Dernière modification par spipfactory (24-09-2022 22:54:46)


« Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis,
Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez...
il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même... »
[ Bernard Werber ]

Hors ligne

#2 25-09-2022 08:40:07

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 6.0.10-arch2-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : CP

Bonjour,

il manquerait pas ton user par hasard ? wink


/home/?/cron/
 

Dernière modification par golgot200 (25-09-2022 08:41:41)

Hors ligne

#3 25-09-2022 09:28:23

cyrille
CA Debian-Facile
Lieu : Nowhere
Distrib. : SID + FreeBSD. Stable sur serveurs.
(G)UI : Xfce/Openbox
Inscription : 21-06-2020
Site Web

Re : CP

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  \;




ou via xargs

find /Rep/de/Recherche/ -name '*.pdf' | xargs cp -t /Rep/De/Destination




++Cyrillle

Dernière modification par cyrille (25-09-2022 09:28:46)


"Ils ne me comprennent point, je ne suis pas la bouche qu’il faut à ces oreilles."

Association Debian-Facile | Les cahiers du débutant | ISO Debian-FacilePage perso. sur #df

Hors ligne

#4 25-09-2022 09:30:18

spipfactory
Membre
Lieu : Web 2.0 Chez World Wide Web
Distrib. : Debian GNU/Linux 8.11 (jessie)
Noyau : Linux 4.9.0-0.bpo.12-amd64
(G)UI : sans
Inscription : 22-09-2022
Site Web

Re : CP

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  .....

Dernière modification par spipfactory (25-09-2022 09:31:10)


« Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis,
Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez...
il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même... »
[ Bernard Werber ]

Hors ligne

#5 25-09-2022 09:46:44

spipfactory
Membre
Lieu : Web 2.0 Chez World Wide Web
Distrib. : Debian GNU/Linux 8.11 (jessie)
Noyau : Linux 4.9.0-0.bpo.12-amd64
(G)UI : sans
Inscription : 22-09-2022
Site Web

Re : CP

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


« Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis,
Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez...
il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même... »
[ Bernard Werber ]

Hors ligne

#6 25-09-2022 09:51:06

cyrille
CA Debian-Facile
Lieu : Nowhere
Distrib. : SID + FreeBSD. Stable sur serveurs.
(G)UI : Xfce/Openbox
Inscription : 21-06-2020
Site Web

Re : CP

/home/sites/*/IMG/pdf/


Tu ne peux pas utiliser une * ici.
Il va falloir faire une boucle bash pour cela (loup --> for ) pour chaque rep de destination
Je te conseille de décomposer ton traitement
1 ligne par rep de destination dans un premier temps
Puis une fois OK, tu écris la boucle


"Ils ne me comprennent point, je ne suis pas la bouche qu’il faut à ces oreilles."

Association Debian-Facile | Les cahiers du débutant | ISO Debian-FacilePage perso. sur #df

Hors ligne

#7 25-09-2022 10:08:20

spipfactory
Membre
Lieu : Web 2.0 Chez World Wide Web
Distrib. : Debian GNU/Linux 8.11 (jessie)
Noyau : Linux 4.9.0-0.bpo.12-amd64
(G)UI : sans
Inscription : 22-09-2022
Site Web

Re : CP

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


« Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis,
Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez...
il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même... »
[ Bernard Werber ]

Hors ligne

#8 25-09-2022 10:19:01

cyrille
CA Debian-Facile
Lieu : Nowhere
Distrib. : SID + FreeBSD. Stable sur serveurs.
(G)UI : Xfce/Openbox
Inscription : 21-06-2020
Site Web

Re : CP

J'ai pas trop le temps de lire tout ça à tête reposée, mais si c'est le repertoire de sortie qui t'embete, passe le en argument de sortie wink


monScript.sh MonNouvelRepDeSortie




Et dans ton script tu le récupéres via la variable $1

tongue


"Ils ne me comprennent point, je ne suis pas la bouche qu’il faut à ces oreilles."

Association Debian-Facile | Les cahiers du débutant | ISO Debian-FacilePage perso. sur #df

Hors ligne

#9 25-09-2022 10:21:44

cyrille
CA Debian-Facile
Lieu : Nowhere
Distrib. : SID + FreeBSD. Stable sur serveurs.
(G)UI : Xfce/Openbox
Inscription : 21-06-2020
Site Web

Re : CP

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


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


"Ils ne me comprennent point, je ne suis pas la bouche qu’il faut à ces oreilles."

Association Debian-Facile | Les cahiers du débutant | ISO Debian-FacilePage perso. sur #df

Hors ligne

#10 25-09-2022 10:23:08

cyrille
CA Debian-Facile
Lieu : Nowhere
Distrib. : SID + FreeBSD. Stable sur serveurs.
(G)UI : Xfce/Openbox
Inscription : 21-06-2020
Site Web

Re : CP

Attention à la syntaxe

      reduc=${ls *.pdf}


"Ils ne me comprennent point, je ne suis pas la bouche qu’il faut à ces oreilles."

Association Debian-Facile | Les cahiers du débutant | ISO Debian-FacilePage perso. sur #df

Hors ligne

#11 25-09-2022 10:37:11

spipfactory
Membre
Lieu : Web 2.0 Chez World Wide Web
Distrib. : Debian GNU/Linux 8.11 (jessie)
Noyau : Linux 4.9.0-0.bpo.12-amd64
(G)UI : sans
Inscription : 22-09-2022
Site Web

Re : CP

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


« Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis,
Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez...
il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même... »
[ Bernard Werber ]

Hors ligne

#12 25-09-2022 10:37:58

spipfactory
Membre
Lieu : Web 2.0 Chez World Wide Web
Distrib. : Debian GNU/Linux 8.11 (jessie)
Noyau : Linux 4.9.0-0.bpo.12-amd64
(G)UI : sans
Inscription : 22-09-2022
Site Web

Re : CP

cyrille a écrit :

Attention à la syntaxe

      reduc=${ls *.pdf}




pour info

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


« Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis,
Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez...
il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même... »
[ Bernard Werber ]

Hors ligne

#13 25-09-2022 10:43:29

cyrille
CA Debian-Facile
Lieu : Nowhere
Distrib. : SID + FreeBSD. Stable sur serveurs.
(G)UI : Xfce/Openbox
Inscription : 21-06-2020
Site Web

Re : CP

oups... très mal réveillé , désolé

c'est dans paranthèses kernal_panic.gifkernal_panic.gifkernal_panic.gif

      reduc=$(ls *.pdf)

Dernière modification par cyrille (25-09-2022 10:43:45)


"Ils ne me comprennent point, je ne suis pas la bouche qu’il faut à ces oreilles."

Association Debian-Facile | Les cahiers du débutant | ISO Debian-FacilePage perso. sur #df

Hors ligne

#14 25-09-2022 11:24:13

Croutons
Membre
Distrib. : Debian10 Buster
Noyau : Linux 4.19.0-18-amd64
(G)UI : Mate
Inscription : 16-12-2016

Re : CP

dans ta demande de départ ce serait la commande suivante , cela te copie bien ton script au bon endroit mais c'est bancale le truc

find  /home/sites/ -type d -iname 'pdf' -execdir cp /home/cron/reduc-pdf.sh {} \;



le mieux c'est de revoir le script pour ne pas avoir a faire toute ses manipulations qui tienne pas la route
comme dit cyrille , revoie ton script avec la variable $1 , dans l'idée je pense d'appliqué la réduction sur $1
après il te reste plus que faire une recherche des fichiers a réduire avec find et tu exécutes ton script sur chaque résultat trouvé
un truc du genre

find  /home/sites/ -type f -iname '*.pdf' -execdir /home/cron/reduc-pdf.sh  {} \;


ou {} représente le résultat de ta recherche passé en paramètre pour ton script , parametre 1 soit $1
à lire dans le wiki Quand les valeurs sont des paramètres

pour la sortie dans ton script peut être , je sais pas si ton fichier doit garder l’extension pdf , j'ai pas étudié ce que fait gs

sOutputFile="$1_reduc.pdf"



dans ta commande find soit tu gardes le répertoire ou le fichier est trouvé comme répertoire de travail (-execdir), soit tu gardes toujours le même répertoire de travail (-exec)

de ce que j'ai vu dans le man gs vite fait
gs [ options ] [ fichiers ]
donc a un moment il faut indiquer le fichier a traiter , la valeur présente dans la variable $1 dans ton cas

Dernière modification par Croutons (25-09-2022 11:48:21)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

En ligne

#15 25-09-2022 12:37:00

golgot200
Membre
Distrib. : Archlinux 2018-02-03
Noyau : 6.0.10-arch2-1
(G)UI : Mate (Strict Minimum)
Inscription : 05-08-2007

Re : CP

@spipfactory

Dans un terminal :


id -un
 



smile

Chez moi :

patrick



/home/patrick/sites ...........




Toi:
find  /home/sites/ -type f -iname '*.pdf'
find: ‘/home/sites/’: Aucun fichier ou dossier de ce type

Moi:
find  /home/patrick/sites/ -type f -iname '*.pdf'
/home/patrick/sites/2022151491542.pdf
 




Il manque ton petit nom après home/  smile


Une commande du genre :

find /home/patrick/sites/ -name '*.pdf' | xargs cp -t /home/patrick/cron/




fichier bien copié de /home/patrick/sites/   vers  /home/patrick/cron/


ls /home/patrick/cron/
2022151491542.pdf
 




pour le déplacer voir mv


find /home/$USER/sites/ -name "*.pdf" -exec mv {} /home/$USER/cron/ \;
find /home/$USER/sites/ -name "*.sh" -exec mv {} /home/$USER/cron/ \;

 

Dernière modification par golgot200 (25-09-2022 13:18:47)

Hors ligne

#16 25-09-2022 13:23:03

spipfactory
Membre
Lieu : Web 2.0 Chez World Wide Web
Distrib. : Debian GNU/Linux 8.11 (jessie)
Noyau : Linux 4.9.0-0.bpo.12-amd64
(G)UI : sans
Inscription : 22-09-2022
Site Web

Re : CP

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


« Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis,
Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez...
il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même... »
[ Bernard Werber ]

Hors ligne

#17 25-09-2022 13:51:01

Croutons
Membre
Distrib. : Debian10 Buster
Noyau : Linux 4.19.0-18-amd64
(G)UI : Mate
Inscription : 16-12-2016

Re : CP

spipfactory a écrit :

find: paths must precede expression: iname


parce que c'est -iname qu'il faut mettre
et recherche type d veux dire que cela recherche iniquement les répertoire qui s'appel pdf
donc maintenant que tes fichiers pdf sont créé il te faut rechercher les fichiers pdf et leur aplliquer la réduc
edit : si j'en crois se blog
https://cameliaweb.fr/blog/developpemen … hostscript
la ligne pour ton script serait

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=output.pdf input.pdf



soit

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite sOutputFile="$1_reduc.pdf" $1



et tu utilises le résultat de ta recherche comme paramètre

 find  /home/sites/ -type f -iname '*.pdf' -execdir /home/cron/reduc-pdf.sh  {} \;


le résultat de recherche {}
passé en parametre 1 la variable $1
 


après pour les chemins a mettre dans ta commande find c'est toi qui sais

Dernière modification par Croutons (25-09-2022 14:06:16)


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

En ligne

#18 25-09-2022 14:00:39

spipfactory
Membre
Lieu : Web 2.0 Chez World Wide Web
Distrib. : Debian GNU/Linux 8.11 (jessie)
Noyau : Linux 4.9.0-0.bpo.12-amd64
(G)UI : sans
Inscription : 22-09-2022
Site Web

Re : CP

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


« Entre Ce que je pense, Ce que je veux dire, Ce que je crois dire, Ce que je dis,
Ce que vous avez envie d'entendre, Ce que vous entendez, Ce que vous comprenez...
il y a dix possibilités qu'on ait des difficultés à communiquer. Mais essayons quand même... »
[ Bernard Werber ]

Hors ligne

#19 25-09-2022 18:01:02

cyrille
CA Debian-Facile
Lieu : Nowhere
Distrib. : SID + FreeBSD. Stable sur serveurs.
(G)UI : Xfce/Openbox
Inscription : 21-06-2020
Site Web

Re : CP

allez je me replonge dans la doc pour trouver comment lancer mon .sh derriere execdir


Utilise xargs comme donné dans mon premier post en exemple , ça passera wink


"Ils ne me comprennent point, je ne suis pas la bouche qu’il faut à ces oreilles."

Association Debian-Facile | Les cahiers du débutant | ISO Debian-FacilePage perso. sur #df

Hors ligne

Pied de page des forums