Commande find Vs ls

Résolu/Fermé
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - 6 déc. 2016 à 15:04
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - 8 déc. 2016 à 16:24
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

UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 157
6 déc. 2016 à 15:51
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
Utilisateur anonyme
6 déc. 2016 à 16:30
[HS] à quoi correspondent les nombres en début de ligne ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > Utilisateur anonyme
6 déc. 2016 à 17:45
Salut,

C'est le numéro d'inode (
ls -i
).
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
Modifié par Ka-El le 8/12/2016 à 10:08
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...
0
UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 157
8 déc. 2016 à 10:16
Solution donnée ;-\
0
Utilisateur anonyme
8 déc. 2016 à 14:58
Sinon

sav="$IFS"
IFS="
"

for i in `ls -ltr`
do
echo "la lligne : $i"
done

IFS="$sav"
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
8 déc. 2016 à 16:24
Messieurs,
Vous m'avez beaucoup aidé et je vous remercie.
Pour moi le problème est réglé.
@+
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
7 déc. 2016 à 09:49
hello
ls -l $(find /rep/lect/dossier -name "F*" -mmin +240)
-3
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 8/12/2016 à 10:13
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
0