IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Problème de nom de fichier ?


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 7
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Par défaut Problème de nom de fichier ?
    Bonjour à tous,

    Je viens de mettre en place un script qui fusionne les PDFs d'un répertoire, cela me génère bien un fichier dans /result/factures.pdf le seul souci c'est qu'il met impossible de le télécharger via http ou ftp et lorsque je vais dans putty pour jeter un œil a ce fameux fichier je trouve étrange la présentation de ce fichier pourriez vous me dire a quoi correspond le $/r

    Merci
    Nom : erreur1.png
Affichages : 291
Taille : 1,5 Ko

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut modération
    veuillez poster des copier/coller entre balises CODES (bouton # dans la barre d'outils de l'éditeur du forum), plutôt que des captures d'écran.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 855
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Morgan91 Voir le message
    je trouve étrange la présentation de ce fichier pourriez vous me dire a quoi correspond le $/r
    Ce n'est pas "/r" mais "\r" et ça doit correspondre au "carriage return" (retour charriot en français) qui termine les lignes des fichiers textes sous Windows. Normalement elles se terminent par "\r\n" signifiant "retour charriot + nouvelle ligne" qui correspond au traditionnel charriot de machine à écrire qui revient au début + le rouleau qui fait avancer le papier (hé oui, l'informatique à ses débuts a commencé par reproduire l'existant) mais le "\n" a du probablement être éliminé entre temps.
    Et le "$" doit probablement être un reste d'appel de variable doublé (écrire par exemple echo $a$ sans faire attention au $ final).
    A mon avis, ton script qui fusionne ne semble pas totalement au point...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut
    le "$" doit probablement être un reste d'appel de variable doublé (écrire par exemple echo $a$ sans faire attention au $ final).
    ce n'est pas ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ # on crée un fichier vide dont le nom se termine par un retour chariot
    $ > 'testFic
    '
    $ # et voilà comment le représente `ls'
    $ ls testFic*
    'testFic'$'\n'
    $
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 855
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ce n'est pas ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ # on crée un fichier vide dont le nom se termine par un retour chariot
    $ > 'testFic
    '
    $ # et voilà comment le représente `ls'
    $ ls testFic*
    'testFic'$'\n'
    $
    Joli !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 7
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Par défaut Trouvé il manquait le ;
    Bonjour merci pour vos idées

    le soucis venait de mon oubli du ; à la fin de la première ligne, du coup il prenait le retour à la ligne comme faisant parti du nom du fichier

    avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pdftk temp/edition_regroupement_factures/*.pdf cat output temp/edition_regroupement_factures/result/factures.pdf
    rm -rf temp/edition_regroupement_factures/*.pdf
    après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pdftk temp/edition_regroupement_factures/*.pdf cat output temp/edition_regroupement_factures/result/factures.pdf;
    rm -rf temp/edition_regroupement_factures/*.pdf
    Merci ça semble fonctionner maintenant

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut
    étant donné que tu supprimes une liste de fichier, tu peux ne pas utiliser -rf.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 297
    Par défaut
    Bonjour

    Citation Envoyé par Morgan91 Voir le message
    le soucis venait de mon oubli du ; à la fin de la première ligne, du coup il prenait le retour à la ligne comme faisant parti du nom du fichier
    Je ne crois pas une seconde cette explication. Il y a un problème de compatibilité. Un problème que tu devrais régler, pour cette ligne-là, mais pour toutes les autres lignes, aussi. Et si l'ajout d'un point virgule a prétendument réglé le problème, c'est uniquement parce que \r a été mis à distance. Il doit donc y avoir un message d'erreur quelque part qui dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     '\r' : commande introuvable.
    Sinon, ton bug se reproduira, et et tes cheveux, tu arracheras.

  9. #9
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 855
    Billets dans le blog
    1
    Par défaut
    C'est vrai que la résolution par le simple ajout d'un point virgule en fin d'instruction me parait bien bizarre. Parce qu'en shell, il n'y a absolument aucune différence entre
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    commande 1
    commande 2
    et
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    commande 1;
    commande 2

    Je n'ai pas non plus bien compris cette instruction pdftk temp/edition_regroupement_factures/*.pdf cat output temp/edition_regroupement_factures/result/factures.pdf avec ce "cat" qui vient se mettre au milieu...

    Concernant l'option "-rf" qui est facultative, c'est vrai pour le "-r". En revanche le "-f" personnellement je préfère le mettre car si un fichier à supprimer est supprimable (parce que le dossier qui le contient a les droits d'écriture qui sont la seule règle concernant la possibilité de supprimer un fichier) mais que le fichier, lui, a des droits restreints, le "rm" seul commence alors par poser la question, indiquant que les droits du fichier pourraient signifier que sa suppression est une mauvaise idée.
    Avec l'option "-f", pas de question. Quels que soient les droits du fichier, si le dossier autorise la suppression alors le fichier est supprimé.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 7
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Par défaut Merci
    Merci pour vos retours

    je prends note dès que j'aurai un peu de temps j'essaierai d'approfondir, je vous tiendrai au courant. l'utilisation de cat est indiqué" dans la documentation de pdftk ce n'est qu'un copié collé de leur exemple.

  11. #11
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 376
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Avec l'option "-f", pas de question. Quels que soient les droits du fichier, si le dossier autorise la suppression alors le fichier est supprimé.
    Pas tout à fait exact, cela peut dépendre aussi des droits "attribués" au fichier par le système de fichier, par exemple sur de l'ext4, il est possible de rendre un fichier immuable ou juste en rajout (voir la commande chattr).
    Et plus simplement, si le dossier est en "drwxrwxrwt" (comme /tmp), il faut être propriétaire du fichier pour pouvoir l'effacer.

  12. #12
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 855
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Morgan91 Voir le message
    l'utilisation de cat est indiqué" dans la documentation de pdftk ce n'est qu'un copié collé de leur exemple.
    Ok, je pensais à un fichier local nommé "cat" mais si c'est vraiment la commande "cat" à insérer ici j'irai voir cette doc pour comprendre son utilté

    Citation Envoyé par disedorgue Voir le message
    Pas tout à fait exact, cela peut dépendre aussi des droits "attribués" au fichier par le système de fichier, par exemple sur de l'ext4, il est possible de rendre un fichier immuable ou juste en rajout (voir la commande chattr).
    La remarque de départ reste quand-même exacte. Avec l'option "-f", si le fichier est supprimable (au sens large du terme donc tous les droits qu'il faut placés où il faut), alors il est supprimé. Et s'il n'est pas supprimable parce que attributs spéciaux (que je ne connais pas en détails mais je te fais confiance si tu dis qu'ils peuvent bloquer la suppression) ou sticky bit de positionné sur le dossier qui le contient, alors il n'est pas supprimé. L'option "-f" sert juste à éviter de poser la question quand la commande estime que la question pourrait être posée, pas à prendre des droits que l'on n'a pas.

    Citation Envoyé par disedorgue Voir le message
    Et plus simplement, si le dossier est en "drwxrwxrwt" (comme /tmp), il faut être propriétaire du fichier pour pouvoir l'effacer.
    Il faut être propriétaire du fichier... ou du dossier le contenant
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  13. #13
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 376
    Par défaut
    Perso, je préfère utiliser --interactive=never (l'option -v reste fonctionnelle si on veut l'utiliser) que -f (-v ne fonctionne plus dans ce cas) qui a tendance à cacher la poussière sous le tapis.

  14. #14
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 855
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Perso, je préfère utiliser --interactive=never
    Ah joli
    Elle je ne la connaissais pas...

    Citation Envoyé par disedorgue Voir le message
    ...que -f (-v ne fonctionne plus dans ce cas)...
    Ah ? Chez-moi "-v" fonctionne tout le temps...
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    /tmp$ mkdir aaa
    /tmp$ cd aaa
    /tmp/aaa$ cp /etc/passwd a
    /tmp/aaa$ rm -f -v a
    'a' supprimé
    /tmp/aaa$ cp /etc/passwd a
    /tmp/aaa$ chmod 000 a
    /tmp/aaa$ ls -l a
    ---------- 1 moi moi 2680 juil. 21 11:37 a
    /tmp/aaa$ rm -f -v a
    'a' supprimé
    /tmp/aaa$ cp /etc/passwd a
    /tmp/aaa$ chmod -R a-w .
    /tmp/aaa$ ls -ld . a
    dr-xr-xr-x 2 moi moi 4096 juil. 21 11:37 .
    -r--r--r-- 1 moi moi 2680 juil. 21 11:37 a
    /tmp/aaa$ rm -f -v a
    rm: impossible de supprimer 'a': Permission non accordée
    /tmp/aaa$ rm --interactive=never -v a
    rm: impossible de supprimer 'a': Permission non accordée
    /tmp/aaa$ rm -f  a
    rm: impossible de supprimer 'a': Permission non accordée
    /tmp/aaa$ rm --interactive=never  a
    rm: impossible de supprimer 'a': Permission non accordée
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  15. #15
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 677
    Par défaut modération
    veuillez poster des copier/coller entre balises CODES (bouton # dans la barre d'outils de l'éditeur du forum), plutôt que des captures d'écran.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  16. #16
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 855
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 855
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    veuillez poster des copier/coller entre balises CODES (bouton # dans la barre d'outils de l'éditeur du forum), plutôt que des captures d'écran.
    Ok, désolé. Je pensais mieux montrer la réalité de la chose mais t'as raison, mettre le code directement permet de le récupérer pour le reproduire plus facilement
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  17. #17
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ touch titi
    $ rm -f -v titi
    removed 'titi'
    $ rm -f titi
    $ rm -f -v titi
    $ rm --interactive=never titi
    rm: cannot remove 'titi': No such file or directory
    Ok, autant pour moi,le -v ne gère pas l'affichage des erreurs...

  18. #18
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Je n'ai pas non plus bien compris cette instruction pdftk temp/edition_regroupement_factures/*.pdf cat output temp/edition_regroupement_factures/result/factures.pdf avec ce "cat" qui vient se mettre au milieu...
    Voir la doc de pdftk :

    La syntaxe de base de PDFTK est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pdftk fichiers_entrants opérande output fichier_sortant
    L’opérande correspond à l’action désirée sur les fichiers.
    "cat" signifie concaténation, déconcaténation
    "burst" signifie extraction
    etc.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur nom de fichier avec des caractères spéciaux
    Par elgordopresto dans le forum VBA Access
    Réponses: 5
    Dernier message: 31/10/2019, 11h09
  2. Problème de noms de fichiers
    Par Rico2a dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/01/2014, 14h51
  3. Opendialog et problème récupération nom du fichier
    Par jeff_68 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 22/07/2010, 17h03
  4. 2 problèmes de nom de fichier
    Par laurentSc dans le forum Langage
    Réponses: 11
    Dernier message: 14/07/2010, 11h49
  5. Problème de nom de fichier et question subsidiaire
    Par Smiff dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2008, 22h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo