#1 Le 06/12/2011, à 00:40
- m2carabas
je ne comprends pas "find" [RESOLU]
salut à tous,
est-ce que vous pourriez m'expliquer, pourquoi "find" ne capte pas le dossier dans l'exemple suivant :
fredou@fredou-E520:~$ find /usr/share/lubuntu/ wallpapers
/usr/share/lubuntu/
/usr/share/lubuntu/openbox
/usr/share/lubuntu/openbox/menu.xml
/usr/share/lubuntu/openbox/rc.xml
/usr/share/lubuntu/qt
/usr/share/lubuntu/qt/Trolltech.conf
/usr/share/lubuntu/images
/usr/share/lubuntu/images/lubuntu-logo.png
/usr/share/lubuntu/images/logout-banner.png
/usr/share/lubuntu/wallpapers
/usr/share/lubuntu/wallpapers/1110-lubuntu-blue.jpg
/usr/share/lubuntu/wallpapers/1110-lubuntu-moth.png
/usr/share/lubuntu/wallpapers/lubuntu-default-wallpaper.png
/usr/share/lubuntu/wallpapers/1110-lubuntu-blue-wallpaper-with-logo.jpg
/usr/share/lubuntu/wallpapers/1110-natty-bug.png
/usr/share/lubuntu/wallpapers/1110-glass-beauty.jpg
/usr/share/lubuntu/leafpad
/usr/share/lubuntu/leafpad/leafpadrc
/usr/share/lubuntu/pcmanfm
/usr/share/lubuntu/pcmanfm/main.lubuntu
find: "wallpapers": Aucun fichier ou dossier de ce type
la biz.
(j'utilise Lubuntu 11.10 avec LXDE si ça a une importance)
Dernière modification par m2carabas (Le 07/12/2011, à 00:26)
Hors ligne
#2 Le 06/12/2011, à 04:23
- sputnick
Re : je ne comprends pas "find" [RESOLU]
find /usr/share/lubuntu -name wallpapers
man find
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#3 Le 06/12/2011, à 07:36
- peyo78
Re : je ne comprends pas "find" [RESOLU]
salut
le pb c'est que tu as mis un espace après lubuntu/ :
find /usr/share/lubuntu/ wallpapers
donc find te retournes tt ce qu'il y a dans /usr/share/lubuntu/
mais si tu te contentes de :
find /usr/share/lubuntu/ -name wallpapers
find ne te retournera que le dossier nommé exactement wallpapers; c'est à dire le répertoire, et pas les fichiers
donc plus simple et plus efficace :
déjà, utiliser un caractère joker (*) pour indiquer à find que tu cherches "tous les fichiers contenant le mot wallpapers" ; tu entoures le terme de ta recherche de guillemets pour éviter que le shell n'interprète ce caractère spécial
donc au lieu de find -name wallpapers tu taperas : find -name ''*wallpapers*''
de plus, avec find tu n'as pas besoin de taper tout le chemin (find est justement fait pour retrouver qqch dont tu ne connais pas l'emplacement, sinon tu te contenterais de cd et ls) :
un exemple je fais une recherche chez moi sur le mot "maths"
peyo@peyo-desktop:~$ find -name "*maths*"
./Documents/EFC/maths.tex
./Documents/EFC/maths_financieres
find me retourne bien les deux docs qui contiennent le mot maths
A+
Dernière modification par peyo78 (Le 06/12/2011, à 10:03)
Hors ligne
#4 Le 06/12/2011, à 12:01
- peyo78
Re : je ne comprends pas "find" [RESOLU]
sputnick a raison, faut toujours allez voir le man...
mieux que -name, utiliser -iname qui est insensible à la casse :
peyo@peyo-desktop:~$ find -iname "*math*"
./.libreoffice/3/user/config/soffice.cfg/modules/smath
./Documents/EFC/maths.tex
./Documents/EFC/Maths_S17.gnumeric
./Documents/EFC/Maths_S19.gnumeric
./Documents/EFC/maths_financieres
sort tous les résultats sur *math* quel que soit la façon dont ce mot est écrit dans les noms de fichiers
si tu avais un fichier Wallpaper au milieu de pleins de fichiers wallpaper, find -name ne te le montrerait pas : find -iname, si.
Dernière modification par peyo78 (Le 06/12/2011, à 12:01)
Hors ligne
#5 Le 07/12/2011, à 00:24
- m2carabas
Re : je ne comprends pas "find" [RESOLU]
super, merci à vous deux.
Hors ligne