Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Commande pour rechercher un fichier sur le disque ?

7 réponses
Avatar
Eric Bart
bjour,

J'arrive pas à trouver les commandes bash qui permettent de scanner
un disque dur pour un ficher soit en fonction de son nom, soit
en fonction de son contenu ...

Pour le premier j'ai :
ls -Rl /repertoire | grep chaine
qui marche pas trop mal

Pour le second, la commande cat ne prend pas l'argument -R

7 réponses

Avatar
Erwann ABALEA
Bonjour,

On Tue, 27 Jan 2004, Eric Bart wrote:

J'arrive pas à trouver les commandes bash qui permettent de scanner
un disque dur pour un ficher soit en fonction de son nom, soit
en fonction de son contenu ...


find

Pour le premier j'ai :
ls -Rl /repertoire | grep chaine


find /repertoire -name chaine

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
La Fondue Bourguignone> Ca dénote du niveau
JLC> Transitif direct, dénoter.
la netiquette, tu oublies la netiquette
-+- C in GNU - Sans escale : Transit direct pour connardland -+-

Avatar
Remi Moyen
On Tue, 27 Jan 2004, Eric Bart wrote:

bjour,

J'arrive pas à trouver les commandes bash qui permettent de scanner
un disque dur pour un ficher soit en fonction de son nom, soit
en fonction de son contenu ...

Pour le premier j'ai :
ls -Rl /repertoire | grep chaine
qui marche pas trop mal


Soit find, qui est fait pour ce genre de choses (et bien plus !!), soit
locate (en n'oubliant pas de faire un updatedb de temps en temps), qui est
de *très* loin plus rapide (normal, il scanne un base de donnée bien
classée, et pas l'arborescence physique).

Sur des machines qui n'avaient pas locate, j'utilisais ça :
$ cat /usr/local/bin/Find
echo Begin $0 : $1
find . -name "*$1*" -print
echo End $0

Pour le second, la commande cat ne prend pas l'argument -R


Pour ma part, j'utilise une petite commande que je me suis faite :
$ cat /usr/local/bin/Grep
echo Begin $0 : $1
find . -name "*" -type f -exec grep $1 {} ; -print
echo End $0

Ça marche pas trop mal, sauf qu'il faudrait que je prenne le temps de
mettre les protections kivonbien pour pouvoir chercher des chaines de
caractères complexes (avec guillemets, espaces, slash et backslash, ...).
Mais bon, tant que tu ne cherches qu'un mot tout simple, mon Find et Grep
marchent très bien, et me rendent d'immenses services !
--
Rémi Moyen
"Malgré les apparences, le temps est très varié à Nancy :
pluie, nuages, neige, brouillard, grêle, ..."

Avatar
TiChou
Dans l'article news:bv5k6k$31a$,
Eric Bart écrivait :

bjour,


Bonjour,

J'arrive pas à trouver les commandes bash qui permettent de scanner
un disque dur pour un ficher soit en fonction de son nom, soit
en fonction de son contenu ...

Pour le premier j'ai :
ls -Rl /repertoire | grep chaine
qui marche pas trop mal


find /repertoire -name "*chaine*"

man find

Pour le second, la commande cat ne prend pas l'argument -R


grep -r chaine /repertoire

man grep


A noter que ces commandes ne sont pas propres à bash et que donc ce n'est
pas des commandes bash mais des commandes shells.

Et à noter aussi que ce thread n'a pas sa place sur ce groupe mais sur
fr.comp.os.unix

--
TiChou

Avatar
Qing Liu
"TiChou" writes:

grep -r chaine /repertoire
...

Et à noter aussi que ce thread n'a pas sa place sur ce groupe mais sur
fr.comp.os.unix


On faut s'attendre à ce qu'on te dise que ton -r (propre à GNU grep)
n'est pas "portable". :)

--
Liu

Avatar
Qing Liu
"TiChou" writes:

grep -r chaine /repertoire
...

Et à noter aussi que ce thread n'a pas sa place sur ce groupe mais sur
fr.comp.os.unix


Il faut s'attendre à ce qu'on te dise que ton -r (propre à GNU grep)
n'est pas "portable". :)

--
Liu

Avatar
TiChou
Dans l'article news:,
Qing Liu écrivait :

grep -r chaine /repertoire
...

Et à noter aussi que ce thread n'a pas sa place sur ce groupe mais
sur fr.comp.os.unix


Il faut s'attendre à ce qu'on te dise que ton -r (propre à GNU grep)
n'est pas "portable". :)


Effectivement, bonne remarque. :) Et titilieux comme ils sont sur la
portabilité, vaudrait mieux alors rester ici. :p

--
TiChou


Avatar
Eric Bart
Merci à tous

Je note et promets de ne plus reposer cette question.