Cinque comandi di ricerca file su Linux

introduzione

Ci sono cinque comandi la ricerca di file su Linux: whereis, locate, which, type, e find. Ognuno di essi ha le proprie caratteristiche ed è progettato per particolari scenari di ricerca. Questa guida ti introdurrà a ciascun comando e mostrerà esempi di utilizzo. Per ulteriori letture su uno di questi comandi, è meglio rivedere la manpage appropriata.

whereis

Il whereiscomando viene utilizzato per cercare file binari, codice sorgente e pagine del manuale online in diverse directory di installazione standard per qualsiasi nome di programma specificato.

Poiché whereisnon esegue la ricerca in tutte le posizioni del sistema, non verrà trovato alcun file proveniente da queste directory specifiche. Per lo stesso motivo, otterrai rapidamente i risultati della tua ricerca, trovata o meno.

Inoltre, non cercherà quei comandi che sono integrati direttamente nella shell.

Ad esempio, se si desidera trovare informazioni sul lscomando, eseguire il comando seguente sul terminale:

whereis ls

Riceverai alcuni feedback come:

ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

Nel risultato, /bin/lsè il binario che si desidera individuare, le altre due sono manpage per il lsprogramma, non lsè stato trovato alcun codice sorgente per il programma.

Copia il /bin/lsfile nella tua home directory e nella /usr/bindirectory, quindi esegui whereisnuovamente il comando:

cp /bin/ls ~
cp /bin/ls /usr/bin/ls
whereis ls

Come vedi, solo /bin/lse /usr/bin/lssono stati trovati nel risultato della ricerca. Il lsprogramma nella directory home non è stato trovato, poiché la directory home non è una di quelle directory di installazione standard.

ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

Se si esegue il comando seguente:

whereis cd

Vedrai un output simile alla riga seguente. Non è stato rilevato alcun file binario perché cdè un comando incorporato della shell.

cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz

locate

Il locatecomando viene utilizzato per trovare i file per nome con l'aiuto di un database ( /var/lib/mlocate/mlocate.db). Questo database è fondamentalmente un'istantanea del layout del tuo filesystem. Tutti i record in questo database che corrispondono alla tua query verranno elencati nei risultati della ricerca. Per impostazione predefinita, il locatecomando utilizzerà la query per abbinare qualsiasi parte del nome intero di ciascun record, incluso il nome del percorso. Pertanto, il numero di file corrispondenti nel risultato della ricerca potrebbe essere maggiore del previsto.

Man mano che il database diventa obsoleto, il risultato della ricerca del locatecomando diventa meno accurato. Potresti notare file che non esistono più o che non vedrai corrispondenze per i file appena creati. Per impostazione predefinita, il mlocate.dbdatabase viene aggiornato automaticamente una volta al giorno. È possibile utilizzare il updatedbcomando per aggiornarlo manualmente.

Poiché la ricerca viene eseguita sul database anziché sul file system, la velocità di ricerca è molto elevata.

Se si esegue il comando seguente:

locate ls

Otterrai molti record invece del risultato atteso.

Per rendere più accurato il risultato della ricerca, è possibile utilizzare il -bflag per limitare l'intervallo di ricerca, utilizzando la query per abbinare solo il nome di base di ciascun record:

locate -b "\ls"

Questa volta, otterrai la posizione di ogni file chiamato esattamente lssul tuo filesystem:

/bin/ls

which

Il whichcomando cercherà il comando specificato nel valore della variabile di ambiente PATHe restituirà il primo risultato per impostazione predefinita. Se si whichesegue una query su un alias, il comando determinerà il comando effettivo per l'alias prima di eseguire la ricerca.

Il whichcomando è anche molto veloce per la sua semplicità.

L'utilizzo del whichcomando è semplice:

which your_command

Se vuoi mostrare tutti i comandi corrispondenti invece del primo, usa il -aflag:

which -a your_command

Ecco un esempio per la ricerca di un comando che è stato modificato:

which ll

Il risultato della ricerca sarebbe:

alias ll='ls -l --color=auto'
    /bin/ls

type

Per impostazione predefinita, il typecomando indicherà come verrà interpretato il nome di un comando. I risultati possibili includono un alias, una parola chiave, una funzione, un file incorporato o un file. Proprio come il whereiscomando, il typecomando cercherà solo in diverse directory di installazione standard per rispondere alla tua query.

Alcuni esempi per digitare diversi comandi:

Un comando incorporato della shell:

type cd

cd is a shell builtin

Un file binario sul filesystem:

type sudo

sudo is /usr/bin/sudo

Un alias:

type ls

ls is aliased to `ls --color=auto'

find

Tra i cinque comandi di ricerca dei file introdotti in questo tutorial, il findcomando è il più potente. È anche il più lento. A differenza degli altri quattro comandi, il findcomando cercherà effettivamente il tuo file sull'intero filesystem, un i-node per un i-node. Con il findcomando, è possibile utilizzare criteri di query sofisticati per trovare tutti i file necessari, anche eseguire azioni sui file trovati.

I criteri di ricerca per il findcomando sono troppo sofisticati per essere spiegati in un articolo così breve, ecco alcuni esempi.

Formato di base del findcomando:

find [path] [option] [action]

Per trovare tutti i file nella directory di lavoro e in tutte le sue sottodirectory:

find

Per trovare un file chiamato aaanella directory home e in tutte le sue sottodirectory:

find ~ -name 'aaa'

Per trovare tutti i file nel filesystem che sono stati modificati nelle ultime 24 ore:

find / -mtime 0

Per trovare tutti i file nella directory web e tutte le sue sottodirectory che appartengono all'utente nginx:

find /usr/share/nginx/html/ -user nginx

Per trovare tutti i file nella directory di lavoro le cui autorizzazioni sono 0744:

find -perm -0744

Per trovare un file con il nome aaanella directory di lavoro ed elencarne le informazioni dettagliate:

find -name 'aaa' -exec ls -l {} \;


Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.