#1 Le 07/06/2012, à 12:20
- Christophe C
[résolu] Niveaux de recherche de find dans les sous-répertoires
Passer comme répertoire le répertoire user (~) ne semble générer qu'une recherche sur le rep courant et les sous-rep cachés, pas dans les autres rep, ce qui semble bizarre.
Exemple, j'ai un fichier /home/chris/Documents/divers/mon-cv.csv
Si je fais un
find ~ -type f -iname *cv*
: il ne trouve pas. Par contre un
find ~/Documents/ -type f -iname *cv*
, il trouve.
Ca me parait bizarre, et surtout ça ne m'arrange pas. Comment trouver mes fichiers en tapant dans le rep user (~) et ses sous-rep, idéalement sans taper dans les sous-répertoires cachés ?
Dernière modification par Christophe C (Le 09/06/2012, à 07:22)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#2 Le 07/06/2012, à 12:39
- pingouinux
Re : [résolu] Niveaux de recherche de find dans les sous-répertoires
Bonjour,
find ~ -type f -iname "*cv*"
Il doit y avoir un fichier qui a causé l'expansion de *cv* dans ~ .
Pour le vérifier :
ls -d ~/*cv*
Ajouté : Cette explication n'est pas la bonne, car dans ce cas, find aurait au moins dû trouver un fichier (voir #7 et #8).
Dernière modification par pingouinux (Le 08/06/2012, à 07:07)
Hors ligne
#3 Le 07/06/2012, à 17:24
- incises
Re : [résolu] Niveaux de recherche de find dans les sous-répertoires
Cela me paraît vraiment curieux, ce n'est pas le fonctionnement normal de find qui cherche dans les sous-répertoires récursivement. Ta commande chez moi explore tout mon répertoire personnel quand tapée dans celui-ci et me trouve tous les fichiers dont le nom contient 'cv'.
EDIT et par parenthèses je ne suis pas sûr de comprendre ce que veut dire pingouinux... la présence d'un fichier dont le nom a la forme *cv* dans le répertoire personnel n'empêche normalement pas find de trouver d'autres fichiers du même genre ailleurs dans l'arborescence.
Dernière modification par incises (Le 07/06/2012, à 17:26)
Hors ligne
#4 Le 07/06/2012, à 17:41
- pingouinux
Re : [résolu] Niveaux de recherche de find dans les sous-répertoires
la présence d'un fichier dont le nom a la forme *cv* dans le répertoire personnel n'empêche normalement pas find de trouver d'autres fichiers du même genre ailleurs dans l'arborescence
Imaginons que le répertoire ~ contienne le fichier ficverole. Cette commande
find ~ -type f -iname *cv*
après expansion, va devenir
find ~ -type f -iname ficverole
et la commande cherchera tous les fichiers de nom ficverole dans l'arborescence, et rien d'autre.
C'est pour cela qu'il faut utiliser :
find ~ -type f -iname "*cv*"
ou
find ~ -type f -iname \*cv\*
Hors ligne
#5 Le 08/06/2012, à 05:40
- Christophe C
Re : [résolu] Niveaux de recherche de find dans les sous-répertoires
Non
find ~ -type f -iname *cv*
ou
find ~ -type f -iname "*cv*"
ou
find ~ -type f -iname \*cv\*
ne marchent pas
find ~/Documents/ -type f -iname *cv*
fonctionne
Incidement, un
find ~ | grep cascade
me sort les fichiers avec "cascade" qui sont dans les sous-répertoires cachés, mais pas dans ceux qui ne sont pas cachés (qui existent bien).
je suis sous xubuntu 12.04.
Dernière modification par Christophe C (Le 08/06/2012, à 05:40)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#6 Le 08/06/2012, à 06:01
- pingouinux
Re : [résolu] Niveaux de recherche de find dans les sous-répertoires
@Christophe C #5 : Alors là, j'en perds mon latin. Tu as bien accès à tous les répertoires et sous-répertoires de l'arborescence (permissions de lecture et d'exécution) ?
Hors ligne
#7 Le 08/06/2012, à 06:18
- Christophe C
Re : [résolu] Niveaux de recherche de find dans les sous-répertoires
Oui.
Mais en prenant ma douche (ça stimule mes neurones :-) ), je me suis souvenu que ce répertoire Documents/ est en fait un lien symbolique vers un autre rep sur une autre partition, montée au démarrage. Pas de problème pour les droits, mais n'y aurait-il pas un problème lié à ce lien. Désolé de ne pas en avoir parle plus tôt, mais c'est tellement ancien que je n'y pense jamais.
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#8 Le 08/06/2012, à 06:35
- pingouinux
Re : [résolu] Niveaux de recherche de find dans les sous-répertoires
Il faut dans ce cas ajouter à find l'option -L, pour suivre les liens symboliques.
find -L ~ -type f -iname "*cv*"
Hors ligne
#9 Le 08/06/2012, à 07:51
- incises
Re : [résolu] Niveaux de recherche de find dans les sous-répertoires
incises #3 a écrit :la présence d'un fichier dont le nom a la forme *cv* dans le répertoire personnel n'empêche normalement pas find de trouver d'autres fichiers du même genre ailleurs dans l'arborescence
Imaginons que le répertoire ~ contienne le fichier ficverole. Cette commande
find ~ -type f -iname *cv*
après expansion, va devenir [...]
Oui pingouinux, je n'avais pas prêté attention au fait que notre interlocuteur Christophe C. avait omis les guillemets dans sa commande (je mets toujours les guillemets et je les avais replacées dans la mienne sans voir que je m'écartais de ce qu'il avait fait...). Suis allé trop vite en besogne comme souvent...
Dernière modification par incises (Le 08/06/2012, à 07:56)
Hors ligne
#10 Le 09/06/2012, à 07:22
- Christophe C
Re : [résolu] Niveaux de recherche de find dans les sous-répertoires
ok, merci beaucoup, ça marche enfin.
Je m'en veux de ne pas avoir pensé à cette histoire de lien symbolique, c'est tellement évident.
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne