Forum Linux.debian/ubuntu Pourquoi l'affichage des résultats dans un terminal est différent de celui copié dans un fichier ?

Posté par  . Licence CC By‑SA.
Étiquettes :
0
14
avr.
2022

Bonjour,

Je suis sous Ubuntu 18.04. Je viens de faire une recherche dans le terminal "ls -R" et comme les résultats étaient très long, je n'avais pas la totalité de la recherche.
J'ai cherché sur le net : comment enregistré les résultats dans un fichier, j'ai trouvé : "ls -R -print > mon-fichier.txt". Le fichier a bien été créé mais les résultats s'affichent différemment.

Dans le terminal j'ai :
" …
./p/8/8/8/9:
8889-cart_default.jpg 8889-large_default.jpg fileType
8889-home_default.jpg 8889-medium_default.jpg index.php
8889.jpg 8889-small_default.jpg

./p/8/8/8/5:
8885-cart_default.jpg 8885-large_default.jpg fileType
8885-home_default.jpg 8885-medium_default.jpg index.php
8885.jpg 8885-small_default.jpg
… "

Et dans le fichier j'ai :
"…
./p/8/8/8/9:
total 304
8737192 -rw-rw-r-- 1 1000 1000 18488 avril 13 00:52 8889-home_default.jpg
8737193 -rw-rw-r-- 1 1000 1000 3708 avril 13 00:52 8889-small_default.jpg
8737194 -rw-rw-r-- 1 1000 1000 54306 avril 13 00:52 8889-medium_default.jpg
8737195 -rw-rw-r-- 1 1000 1000 107105 avril 13 00:52 8889-large_default.jpg
8737197 -rw-rw-r-- 1 1000 1000 5445 avril 13 00:52 8889-cart_default.jpg
8737196 -rw-rw-r-- 1 1000 1000 3 avril 13 00:52 fileType
8737198 -rw-rw-r-- 1 1000 1000 1281 avril 13 00:52 index.php
8737199 -rw-rw-r-- 1 1000 1000 100962 avril 13 00:52 8889.jpg

./p/8/8/8/5:
total 268
8737200 -rw-rw-r-- 1 1000 1000 91230 avril 13 00:52 8885-large_default.jpg
8737201 -rw-rw-r-- 1 1000 1000 5193 avril 13 00:52 8885-cart_default.jpg
8737202 -rw-rw-r-- 1 1000 1000 16978 avril 13 00:52 8885-home_default.jpg
8737203 -rw-rw-r-- 1 1000 1000 3540 avril 13 00:52 8885-small_default.jpg
8737204 -rw-rw-r-- 1 1000 1000 47599 avril 13 00:52 8885-medium_default.jpg
8737205 -rw-rw-r-- 1 1000 1000 3 avril 13 00:52 fileType
8737206 -rw-rw-r-- 1 1000 1000 87231 avril 13 00:52 8885.jpg
8737207 -rw-rw-r-- 1 1000 1000 1281 avril 13 00:52 index.php
… "

Je préfère l'affichage dans le terminal, car j'ai juste besoin de la liste des fichiers contenus dans les répertoires et sous-répertoires.

D'autre part, le résultat me paraît loufoque et comme ma compréhension est limitée dans ce domaine, je m'interroge sur le total 304 et le total 268 ? Si cela correspond au nombre de fichiers présents dans le répertoire, c'est complètement faux ou alors il y a des fichiers fantômes (hi, hi) ! Mais cela veut peut-être dire autre chose ?

Est ce que quelqu'un pourrait m'aider à comprendre ou me proposer une solution qui soit plus proche de celle affichée dans le terminal ?
Merci d'avance.

  • # Commande -print en trop

    Posté par  . Évalué à 4. Dernière modification le 14 avril 2022 à 19:28.

    Salut,
    les deux commandes sont différentes :
    ls -R
    et
    ls -R -print > toto.txt
    c'est le -print qui change l'affichage. Il faut supprimer ces options et juste faire
    ls -R > toto.txt
    Ça suffit.
    C'est
    > toto.txt
    qui permet d'écrire la sortie de ta commande dans un fichier. Ici le -print, si je ne me trompe pas est l'ensemble des options p r i n t de ls.
    Si on regarde dans la doc de ls avec man ls:
    -p Write a slash (`/') after each filename if that file is a directory.
    -i For each file, print the file's file serial number (inode number).
    -n Display user and group IDs numerically, rather than converting to a user or group name in a long (-l) output. This option turns on the -l option.
    -r Reverse the order of the sort to get reverse lexicographical order or the oldest entries first (or largest files last, if combined with sort by size
    -t Sort by time modified (most recently modified first) before sorting the operands by lexicographical order.
    D'où la sortie bien détaillée.

    • [^] # Re: Commande -print en trop

      Posté par  . Évalué à 1. Dernière modification le 14 avril 2022 à 19:31.

      Oui j'avais pas regardé le man en répondant, mais c'est forcément ce qui cause la différences entre les sorties.

      • [^] # Re: Commande -print en trop

        Posté par  . Évalué à 1. Dernière modification le 14 avril 2022 à 19:43.

        l'option -print n'existe tout simplement pas.
        En général pour le posteur initial, les options longues qui sont des mots sont précédées de—et non pas d'un seul -

        • [^] # Re: Commande -print en trop

          Posté par  . Évalué à 4. Dernière modification le 14 avril 2022 à 22:46.

          sauf que les options "courtes" précédées d'un seul tiret peuvent être enchainées.

          Donc la commande

          ls -R -print > mon-fichier.txt
          

          est équivalente à

          ls -R -p -r -i -n -t > mon-fichier.txt
          

          et aussi à

          ls -prRint > mon-fichier.txt
          

          d'où la réponse de nnamrok

          Les vrais naviguent en -42

          • [^] # Re: Commande -print en trop

            Posté par  . Évalué à 1. Dernière modification le 16 avril 2022 à 16:03.

            Oui j'avais bien compris, mais finalement c'est du hasard si -print fonctionne, parce qu'il y a une option p r i n t, pas plus.

            Mais c'était pour rectifier un autre message où je n'avais pas lu le man avant.(j'ai pas pu éditer, je sais pas pourquoi)

    • [^] # Re: Commande -print en trop

      Posté par  . Évalué à 2. Dernière modification le 17 avril 2022 à 18:33.

      Bonjour à Tous,

      Désolée, je me suis absentée quelques jours.
      Waooh ! Je suis très contente, grâce à votre aide et vos échanges j'ai élargi mes connaissances.
      Effectivement en enlevant la commande "-print", j'ai exactement ce dont j'ai besoin un affichage par ligne, encore mieux que dans le terminal :

      ./p/8/8/8/9:
      8889-cart_default.jpg
      8889-home_default.jpg
      8889.jpg
      8889-large_default.jpg
      8889-medium_default.jpg
      8889-small_default.jpg
      fileType
      index.php
      Un gran merci, à vous Tous.

      JOYEUSES FETES DE PAQUES !

  • # Pourquoi l'affichage des résultats dans un terminal est différent de celui copié dans un fichier ?

    Posté par  . Évalué à 1.

    Ce qui m'étonne c'est si tu as bien entré ces commandes…

    En général un affichage sous forme de liste requiert l'argument -l à la commande ls…

    Donc si tu veux un fichier avec ton ls -lR tu pourras le faire avec ces options.

    Pourquoi ton ls de base affiche en mode liste (-l) je n'en sais rien…C'est bien strictement les options que tu as donné à ls? Tu en es sûr?

    • [^] # alias ?

      Posté par  . Évalué à 2. Dernière modification le 14 avril 2022 à 19:40.

      Bonjour

      … Pourquoi ton ls de base affiche en mode liste (-l) je n'en sais rien …

      Peut-être que la commande ls a été lancée par l'intermédiaire d'un alias


      Depuis le même compte utilisateur et avec le même interpréteur de commandes,
      quel est le retour de la commande :

      alias
      
    • [^] # Pourquoi l'affichage des résultats dans un terminal est différent de celui copié dans un fichier ?

      Posté par  (site web personnel) . Évalué à 4.

      > En général un affichage sous forme de liste requiert l'argument -l à la commande ls…

      Non, pour plusieurs raisons :

      • -l permet d'avoir des détails ; ceux-ci sont affichés ligne par ligne, mais ça n'est pas la signification première de cette option.
      • -1 correspond à ce que tu mentionnes, à savoir une ligne par élément.

      Par ailleurs, ls détecte automatiquement si sa sortie est connectée à un terminal et ajuste sa sortie en fonction (par exemple pour afficher les résultats en un certain nombre de colonnes en fonction de la taille des éléments trouvés et de la taille du terminal). Si une redirection est détectée, ls se comporte comme si l'option -1 avait été passée.

      Exemple trivial : comparer la sortie de ls /etc et celle de ls /etc | cat (magie !).

      Debian Consultant @ DEBAMAX

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.