Commande find Vs ls

Résolu
Bonjour,
Dans un script je trouve la commande find suivante :
find /rep/lect/dossier -name "F*" -mmin +240 -ls

Elle me donne le résultat suivant:
1212587 8404 -rw-rw-r-- 1 toto groland 8587329 Nov 30 04:32 /rep/lect/dossier/F0414713
1212884 788 -rw-rw-r-- 1 toto groland 800095 Nov 8 04:35 /rep/lect/dossier/tmp/F0394330
1212594 40 -rw-rw-r-- 1 toto groland 36903 Nov 28 10:49 /rep/lect/dossier/F0413030.pi99
1212819 4 -rw-rw-r-- 1 toto groland 1304 Oct 27 13:52 /rep/lect/dossier/F0393300
1212501 612 -rw-rw-r-- 1 toto groland 621000 Nov 30 19:00 /rep/lect/dossier/F0415405
1212787 4 -rw-rw-r-- 1 toto groland 1304 Oct 20 16:39 /rep/lect/dossier/F0387751
etc...

Est-ce qu'il me serait possible d'obtenir le même affichage avec la commande "ls ?"
Merci d'avance pour votre aide.

4 réponses

  1. Contributeur
    Salut,

    Non, puisque la condition d'affichage de
    find
    stipule "modifiés depuis + de 4 heures" (
    -mmin +240
    ), chose que ne sait pas faire la commande
    ls
    ;-(
    1. [HS] à quoi correspondent les nombres en début de ligne ?
  2. Contributeur
    hello
    ls -l $(find /rep/lect/dossier -name "F*" -mmin +240)
    1. Modérateur
      Attention, ta commande partira en capilotade dans le cas de noms de fichiers contenant des espaces:
      johand@bata:~/tmp/sandbox$ ls -1; ls -l $(find . -name "a*")
      a 1.txt
      a 2.txt
      ls: impossible d'accéder à './a': Aucun fichier ou dossier de ce type
      ls: impossible d'accéder à '1.txt': Aucun fichier ou dossier de ce type
      ls: impossible d'accéder à './a': Aucun fichier ou dossier de ce type
      ls: impossible d'accéder à '2.txt': Aucun fichier ou dossier de ce type

      La commande find est bien plus souple( voir l'option -printf.
      johand@bata:~/tmp/sandbox$ find . -printf "%M %u %g %p\n"
      drwxr-xr-x johand johand .
      -rw-r--r-- johand johand ./a 1.txt
      -rw-r--r-- johand johand ./a 2.txt
  3. Mais alors comment rediriger dans un fichier l'affichage obtenu avec la commande ls -tlr (par exemple) quand on fait un boucle for ?
    Je n'obtiens pour l'instant que des retours à la ligne à chaque espace...
    1. Contributeur
      Solution donnée là ;-\
    2. Sinon

      sav="$IFS"
      IFS="
      "
      
      for i in `ls -ltr`
      do
      echo "la lligne : $i"
      done
      
      IFS="$sav"
  4. Messieurs,
    Vous m'avez beaucoup aidé et je vous remercie.
    Pour moi le problème est réglé.
    @+