Utilizza locate , grep o find nella riga di comando.
Apri Applicazioni > Utilità > Terminale e utilizza:
-
sudo locate -0 '*.txt' | xargs -0 grep WORD 2>/dev/null
Sostituisci WORD con la parola che vuoi cercare. Questo è di gran lunga il metodo più veloce .
Consiglierei di ricreare il database di localizzazione prima per migliorare la precisione:
sudo /usr/libexec/locate.updatedb
Da notare che su OS X, il database locate viene creato dall'utente nobody . Ciò significa che i file nascosti a nobody non verranno indicizzati. Puoi modificare /usr/libexec/locate.updatedb e commentare (cioè prefisso con # ) questa sezione:
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
in modo che sia indicizzato dall'utente root (questo vale per OS X 10.8 (Mountain Lion), su altre versioni OS X locate può indicizzare i file in modo diverso).
-
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
Sostituisci WORD con la parola che vuoi cercare e <OS volume> con il nome del tuo volume del SO. Le opzioni grep utilizzate sono:
-
-R : esegue una ricerca ricorsiva nel percorso specificato, ovvero in / . Se cerchi il backup di TimeCapsule, sostituisci / con qualcosa come /Volumes/TimeCapsule .
-
--exclude-dir : esclude le cartelle specificate. Come puoi vedere, escludo Spotlight, la cartella Versions e le cartelle TimeMachine locali. Se vuoi cercare il tuo disco locale solo mentre è montato TimeCapsule, aggiungi --exclude-dir /Volumes/TimeCapsule .
-
--include '*.txt' : indica grep per cercare file che corrispondono a *.txt .
In aggiunta:
-
2>/dev/null : invia errori a /dev/null in modo che tu non li veda.
-
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
Ancora una volta, sostituisci WORD con la parola che vuoi cercare e <OS volume> con il nome del tuo volume del SO. Come prima, 2>/dev/null invia errori a /dev/null in modo che tu non li veda, e se cerchi il tuo backup TimeCapsule, sostituisci / con qualcosa come /Volumes/TimeCapsule .
Le opzioni find utilizzate sono:
-
! -path : percorsi di esclusione specificati. Se vuoi cercare il tuo disco locale solo mentre è montato TimeCapsule, aggiungi ! -path /Volumes/TimeCapsule/* .
-
-name *.txt : file di ricerca denominati * .txt. Come puoi vedere, escludo Spotlight, la cartella Versions e le cartelle TimeMachine locali.
-
-type f : cerca solo file, ignora collegamenti simbolici, cartelle, ecc.
-
grep -H WORD {} : file grep per WORD. -H forza grep per stampare il nome file.
L'output di uno dei comandi sopra è simile a questo:
filename: matched line
per esempio, durante la ricerca di '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
Se vuoi eseguire una ricerca senza distinzione tra maiuscole e minuscole, sostituisci grep con grep -i sopra.