Qual è la differenza tra nome file e ./filename in Linux


Risposte:


18

Per i file di dati, non fa differenza: entrambe le istruzioni faranno riferimento al file di dati nella directory corrente. (Ad esempio, cat filenamee cat ./filenamesono semanticamente identici.)

È una storia diversa se il nome file in questione si riferisce a un eseguibile , ovvero è la prima (o anche unica) cosa che digiti sulla riga di comando. ./filenamecercherà il file eseguibile nella directory corrente e da nessun'altra parte. filename, D'altra parte, valuterà la variabile d'ambiente PATH, e cercare filenamein ogni directory in esso memorizzati (che potrebbe o non potrebbe includere la directory corrente).

./filename(o qualsiasi altro /path/to/filename) è quindi preferito quando si desidera eseguire un eseguibile specifico , non il primo trovato nel PERCORSO.


6

Se stai eseguendo un programma, filenamedice di eseguire il primo trovato nel tuo $PATHe il secondo dice di eseguire quello nella directory corrente.

Se stai usando quel nome di file come argomento per un programma come in do_something filenameo do_something ./filenameallora significano la stessa cosa.


5

Ti riferisci all'esecuzione del comando, giusto?

Esiste una variabile di ambiente PATHche contiene alcune directory di sistema, delimitate da punto e virgola. Quando si digita commandil sistema cerca in queste directory nell'ordine in cui sono specificate per trovare un file eseguibile chiamato <command> Se lo trova, tenta di eseguirlo. Puoi vedere il tuo PERCORSO via echo $PATHin bash. Per esempio:

$ echo $ PATH
/ sbin: / bin: / usr / sbin: / usr / bin: / usr / games: / usr / local / sbin: / usr / local / bin: / home / ivanatora / bin: / usr / local / kde4 / bin: / usr / local / kde4 / bin

Durante la digitazione ./filenamesi specifica il percorso esatto: la directory corrente. Puoi vedere che la directory corrente è raramente nel tuo $ PATH (per motivi di sicurezza). Quindi, se si desidera eseguire un file dalla directory corrente, si utilizza ./filename.

Per eseguire un file dal suo percorso (specialmente se non è in $ PATH) puoi anche digitare <path>/file, come:

/ Sbin / ifconfig



1

Dipende da quali circostanze lo stai usando.

Come argomento, ad esempio "nome file del programma", dipende dal programma, ma generalmente sono identici.

Come nome del programma, ad es. "Argomenti nomefile", quindi "argomenti nomefile" cercherà il PERCORSO per trovare il binario, mentre "./argomento argomenti nomefile" utilizzerà il programma nella directory corrente. Questo è ovviamente utile se. non è nel PERCORSO, ma è anche utile usarlo anche se. è nel percorso, forse perché corrisponde a una voce precedente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.