Use locate , grep o find en la línea de comando.
Abra Aplicaciones > Utilidades > Terminal y use:
-
sudo locate -0 '*.txt' | xargs -0 grep WORD 2>/dev/null
Sustituya WORD con la palabra que desea buscar. Este es, con mucho, el método más rápido .
Recomendaría recrear la base de datos de localización primero para mejorar la precisión:
sudo /usr/libexec/locate.updatedb
Tenga en cuenta que en OS X, el usuario locate crea la base de datos nobody . Eso significa que los archivos ocultos a nobody no serán indexados. Puede modificar /usr/libexec/locate.updatedb y comentar (es decir, prefijo con # ) esta sección:
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
para que se indexe bajo el usuario root (esto se aplica a OS X 10.8 (Mountain Lion), en otras versiones de OS X locate pueden indexar los archivos de manera diferente).
-
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
Sustituya WORD con la palabra que desea buscar y <OS volume> con el nombre de su volumen de SO. Las opciones grep utilizadas son:
-
-R : realiza una búsqueda recursiva en la ruta especificada, es decir, en / . Si buscas en tu copia de seguridad de TimeCapsule, reemplaza / con algo como /Volumes/TimeCapsule .
-
--exclude-dir : excluye las carpetas especificadas. Como puede ver, excluyo Spotlight, la carpeta Versiones y las carpetas locales de TimeMachine. Si desea buscar en su unidad local solo mientras su TimeCapsule está montado, agregue --exclude-dir /Volumes/TimeCapsule .
-
--include '*.txt' : le dice a grep que busque archivos que coincidan con *.txt .
Además:
-
2>/dev/null : envía errores a /dev/null para que no los veas.
-
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
Nuevamente, sustituya WORD con la palabra que desea buscar y <OS volume> con el nombre de su volumen de SO. Como antes, 2>/dev/null envía errores a /dev/null para que no los vea, y si busca su copia de seguridad de TimeCapsule, reemplace / con algo como /Volumes/TimeCapsule .
Las opciones find utilizadas son:
-
! -path : excluye las rutas especificadas. Si desea buscar en su unidad local solo mientras su TimeCapsule está montado, agregue ! -path /Volumes/TimeCapsule/* .
-
-name *.txt : busca archivos con el nombre * .txt. Como ve, excluyo Spotlight, la carpeta Versiones y las carpetas locales de TimeMachine.
-
-type f : buscar solo archivos, ignorar enlaces simbólicos, carpetas, etc.
-
grep -H WORD {} : archivo grep para WORD. -H fuerza a grep a imprimir el nombre de archivo.
La salida de cualquiera de los comandos anteriores se ve así:
filename: matched line
por ejemplo, al buscar '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 desea realizar una búsqueda que no distinga mayúsculas y minúsculas, reemplace grep con grep -i arriba.