Sto cercando di localizzare tutte le copie del example.filenamemio server FreeBSD. Qual è il modo migliore / più semplice / più efficiente per farlo?
Sto cercando di localizzare tutte le copie del example.filenamemio server FreeBSD. Qual è il modo migliore / più semplice / più efficiente per farlo?
Risposte:
find / -name example.filename
locate filename
Molto più veloce di find, se stai eseguendo il servizio di individuazione, e trova solo i file che esistevano updatedball'ultima esecuzione (di solito la notte prima del controllo di un lavoro cron).
È possibile eseguire updatedba mano, ma che è anche più lento rispetto alla findCletus suggerisce , e richiede root. A volte aggiorno il database a mano dopo aver installato un sacco di nuove cose.
find /o su un grande albero più di una volta alla settimana, locateprobabilmente vale la pena eseguire il servizio, perché locate(1)è molto più veloce.
sudo periodic weeklyaggiorna il locatedatabase. Eseguilo dopo ogni installazione o download che può contenere i file che desideri.
Se hai installato Locate (aka Slocate), allora
locate example.filename
individuare esegue un processo cron ogni notte che reindicizza tutti i file sul computer. Non è sempre aggiornato per questo motivo.
A volte vuoi trovare file a un livello di directory specifico. In questo caso può essere conveniente usare i caratteri jolly della shell:
ls /data/*/example.filename
Ovviamente questo funziona solo se si dispone di una struttura di directory rigida.
locateCome altri hanno già detto, locateè il modo rapido per trovare un file. Questo comando utilizza un indice precompilato dei nomi di file e cartelle. Questo database di nomi viene cercato, anziché eseguire la scansione del file system.
locate example.filename
Per non distinguere tra maiuscole e minuscole, aggiungi -i.
locate -i eXAmPle.FileName
locateDatabase di aggiornamentoIl database utilizzato da locatedeve essere aggiornato. Dopo aver eseguito un'installazione o un download che potrebbe contenere il file desiderato, è necessario aggiornare il locatedatabase.
Il locatedatabase verrà eventualmente aggiornato automaticamente dal tuo sistema FreeBSD. C'è una serie settimanale di faccende che include questa attività. Queste faccende sono elencate nello /etc/periodic/weekly/310.locatescript.
Il modo più semplice e sicuro per forzare l'aggiornamento anticipato del locatedatabase è forzare subito il set settimanale di faccende.
sudo periodic weekly
Oppure potresti anche forzare tutte le normali faccende da svolgere. Potresti volerlo fare subito dopo aver configurato un nuovo sistema FreeBSD.
sudo periodic daily weekly monthly
Se usi altre strade per aggiornare il locatedatabase, potresti ricevere un messaggio sulla sicurezza, rivelando i nomi di tutti i file del tuo sistema a qualsiasi utente sul sistema FreeBSD. L'uso del periodicpercorso evita questo problema.
Se il database di individuazione è aggiornato, allora basta:
locate example.filename
A volte lo faccio
find . | grep example.filename
probabilmente enormemente inefficiente comunque.