Utilisez locate
, grep
o find
à la ligne de commande.
Ouvrez Applications>Utilitaires>Terminal et utilisez soit :
-
sudo locate -0 '*.txt' | xargs -0 grep WORD 2>/dev/null
Remplacez WORD par le mot que vous souhaitez rechercher. C'est de loin la le plus rapide méthode.
Je vous recommande de recréer la base de données de localisation pour améliorer la précision :
sudo /usr/libexec/locate.updatedb
Notez que sous OS X, l'option locate
La base de données est créée par l'utilisateur nobody
. Cela signifie que les fichiers cachés à nobody
ne sera pas indexé. Vous pouvez modifier /usr/libexec/locate.updatedb
et le commenter (c'est-à-dire le préfixer avec #
) cette section :
if [ "$(id -u)" = "0" ]; then
rc=0
# 2013-03-08 jaume Correct mktemp
export FCODES=`mktemp --tmpdir updatedbXXXX`
chown nobody $FCODES
tmpdb=`su -fm nobody -c "$0"` || rc=1
if [ $rc = 0 ]; then
install -m 0444 -o nobody -g wheel $FCODES /var/db/locate.database
fi
rm $FCODES
exit $rc
fi
afin qu'il soit indexé sous l'utilisateur root
(ceci s'applique à OS X 10.8 (Mountain Lion), sur les autres versions d'OS X locate
peuvent indexer les fichiers différemment).
-
sudo grep -R --exclude-dir '/Volumes/<OS volume>' --exclude-dir '/Volumes/MobileBackups' --exclude-dir '/.Spotlight*' --exclude-dir '/.MobileBackups' --exclude-dir '/.DocumentRevisions*' --include '*.txt' WORD / 2>/dev/null
Remplacez WORD par le mot que vous souhaitez rechercher et <OS volume>
avec le nom de votre volume OS. Le site grep
Les options utilisées sont les suivantes :
-
-R
: effectue une recherche récursive dans le chemin spécifié, c'est-à-dire dans /
. Si vous recherchez votre sauvegarde TimeCapsule, remplacez /
avec quelque chose comme /Volumes/TimeCapsule
.
-
--exclude-dir
: exclut les dossiers spécifiés. Comme vous le voyez, j'exclue Spotlight, le dossier Versions et les dossiers locaux de TimeMachine. Si vous souhaitez effectuer une recherche sur votre lecteur local uniquement lorsque votre TimeCapsule est monté, ajoutez --exclude-dir /Volumes/TimeCapsule
.
-
--include '*.txt'
: raconte grep
pour rechercher les fichiers qui correspondent à *.txt
.
En outre :
-
2>/dev/null
: envoie les erreurs à /dev/null
pour que vous ne les voyiez pas.
-
sudo find / ! -path '/.Spotlight*' ! -path '/Volumes/<OS volume>/*' ! -path '/Volumes/MobileBackups/*' ! -path '/.MobileBackups/*' ! -path '/.DocumentRevisions*' -name *.txt -type f -exec grep -H WORD {} + 2>/dev/null
Encore une fois, remplacez WORD par le mot que vous voulez rechercher et <OS volume>
avec le nom de votre volume OS. Comme avant, 2>/dev/null
envoie les erreurs à /dev/null
pour que vous ne les voyiez pas, et si vous recherchez votre sauvegarde TimeCapsule, remplacez /
avec quelque chose comme /Volumes/TimeCapsule
.
Le site find
Les options utilisées sont les suivantes :
-
! -path
: exclure les chemins spécifiés. Si vous souhaitez effectuer une recherche sur votre lecteur local uniquement lorsque votre TimeCapsule est monté, ajoutez ! -path /Volumes/TimeCapsule/*
.
-
-name *.txt
: rechercher les fichiers nommés *.txt. Comme vous le voyez, j'exclue Spotlight, le dossier Versions et les dossiers locaux de TimeMachine.
-
-type f
: rechercher uniquement les fichiers, ignorer les liens symboliques, les dossiers, etc.
-
grep -H WORD {}
: grep file for WORD. -H
forces grep
pour imprimer le nom du fichier.
La sortie de l'une des commandes ci-dessus ressemble à ceci :
filename: matched line
par exemple, lors de la recherche de "GNU" :
/usr/local/share/doc/p7zip/DOCS/readme.txt:7-Zip is free software distributed under the GNU LGPL
/usr/local/share/doc/p7zip/DOCS/readme.txt:1) You can compile and use compiled files under GNU LGPL rules, since
/usr/local/share/doc/p7zip/DOCS/readme.txt: copying.txt - GNU LGPL license
/usr/local/share/doc/xz/history.txt: Alexandre Sauvé helped converting the build system to use GNU
Si vous voulez faire une recherche insensible à la casse, remplacez grep
con grep -i
ci-dessus.