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.