Cosa sono “.” E “..” in una directory?


Risposte:


40

Il . è la directory corrente, mentre .. indica la directory principale. Rende le cose più veloci anche dalla riga di comando, quindi non è necessario digitare percorsi completi.

esempio:

vai su 2 directory:

cd ..\..\

o su un sistema basato su UNIX, per eseguire binari eseguibili nella directory corrente:

./program

Verranno inoltre utilizzati molti script UNIX. per rappresentare la directory corrente, ad esempio per cercare i file (Perl):

#!/usr/bin/perl

opendir ( DIR, "." ) || die "Error opening current directory\n";
while( ($f = readdir(DIR))){
     print("$f\n");
}
closedir(DIR);

È molto più portatile se si desidera spostare lo script in diverse directory o sistemi poiché un nome di directory non è codificato.


3
È poco noto, ma la riga di comando di Windows si estende ulteriormente. . = questa directory .. = directory principale ... = la directory padre di 3 punti a volte è utile, molto più di questo ed è semplicemente troppo difficile da gestire.
salmonmoose,

4
3 punti non funziona per me, usando Vista
Kevin Panko,

1
né io su Windows 7 64 bit RTM. Mi sembra un mito. cosa c'è che non va in .. \ .. comunque?
AdamV,

2
@salmonmoose: non funziona neanche su XP.
Simon P Stevens,


10

La ..si usa per navigare nella gerarchia del file system. È utile quando non si desidera digitare un percorso lungo o quando si scrive uno script / programma che non sa dove esattamente verrà installato ma sa che ../media/dovrebbe contenere tutte le immagini / i video / le icone ecc.

Il singolo punto .è utile in Linux in cui si desidera eseguire un eseguibile nella directory corrente in modo da digitare ./a.outperché la shell dei comandi per impostazione predefinita non cerca i file eseguibili nella directory corrente (per motivi di sicurezza).

Il punto singolo .viene utilizzato anche se si desidera passare la directory corrente come argomento a un comando.


1
PowerShell inoltre non include. nell'elenco dei percorsi per la ricerca di file eseguibili.
Joey,

Come passare "." come argomento per un comando?
Calcolo

@DeFu passi il punto come punto, ad esempio:ls .
hasen

ls funziona comels .
Calculus,

@DeFu bene sì, ma quando lo fai ls .si sta passando '' come argomento per "ls"; non è quello che hai chiesto? Funziona allo stesso modo perché per impostazione predefinita lselenca la directory corrente ed .è la directory corrente. Ma lo stai passando al comando, di sicuro.
hasen

5

Il . è la directory corrente. Raramente è necessario utilizzare questo; la maggior parte dei comandi assumerà la directory corrente. Il .. è il livello successivo; questa è una scorciatoia piuttosto utile. Se sei in C: \ foo \ bar e vuoi andare a C: \ foo \ bar2 puoi dire

cd ..\bar2

e sarai in C: \ foo \ bar2. Se non vuoi andare a bar2 ma vuoi solo eseguire C: \ foo \ bar.exe, allora puoi dire

..\bar.exe

oppure .. \ bar per eseguirlo senza tornare alla directory principale. Naturalmente, questo è più utile quando lo sei rappresenta un percorso più lungo di C: \ foo (come "C: \ Users \ Daniel \ My Dropbox \".


1
Io trovo . essere abbastanza utile a volte, specialmente quando si copiano o si spostano i file nella posizione corrente ( copy F:\*.foo .) o si fa riferimento ad essa in altro modo (ad esempio, start .apre Explorer nella directory corrente).
Joey,

3

Stanno per:

.

L'attuale dir

.. 

Rappresenta la directory principale

Quindi se hai l'eseguibile "su.exe" in:

  • La variabile di ambiente Path (diciamo C: \ MyExecutables \ su.exe)
  • La tua attuale dir
  • Il tuo genitore dir.

Puoi eseguire ognuno in questo modo:

 su.exe  

Esegue quello nel Percorso

.\su.exe 

Esegue quello nella directory corrente

..\su.exe

Esegue quello nella directory principale.

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.