Cosa significano “.” E “..” quando ci si trova in una cartella?


34

quando ls -avisualizzavo i file nascosti nella cartella c'erano 2 file nascosti creati di default qual è il significato di questi due file .e ..?

ls -a

produce

.  ..

Li uso molto quando lo faccio ls -laperché mi mostrerà i permessi e la proprietà sulla directory in cui mi trovo e la directory sopra quella in cui mi trovo.
Marco Ceppi

non ho abbastanza rappresentante qui per votare per chiudere, ma ho messo un flag su questa domanda in quanto è molto una domanda a cui è possibile rispondere in 3 secondi cercando su Google (e perché c'è stata una recente discussione su domande che sono troppo facili sul blog SO).
zzzzBov

1
^ zzzzBov Grazie in spagnolo per la tua generosità.
mr_eclair,

Risposte:


40

. è la cartella corrente.

.. è la cartella sopra la cartella corrente - la cartella che contiene la cartella corrente.

A volte vedrai quel singolo punto in uso quando qualcuno vuole eseguire uno script dalla sua home directory. Ad esempio: ./install-app.sh. Ciò significa che il file "install-app.sh" si trova nella directory corrente. Sarebbe altrettanto valido fare /home/username/directory/install-app.sh. Allo stesso modo, potresti anche fare ../install.app se il file si trova nella directory principale. Il motivo per cui è così, non è solo per la navigazione, ma anche che non dovrebbe essere possibile nascondere accidentalmente le applicazioni di sistema semplicemente errando un file nella directory home.


100% corretto. Pensali come hook, che si trovano in ogni singola directory. Sono utilizzati esclusivamente per la navigazione. Scoprirai che questo non è solo uno standard di Linux, ma anche su Windows. Probabilmente lo stesso su unix e mac, ma non ho mai giocato in nessuno dei loro comandi.
Ctuchik,

1
cd / ; cd ..: P
htorque,

1
È lo stesso anche su FreeBSD, quindi immagino che lo sia anche su Mac, poiché Mac si basa su Darwin BSD.
Azendale,

Htorque: sei forse una persona religiosa? :)
Jo-Erlend Schinstad,

È su Mac OS X (che funziona esattamente come qualsiasi altro Unix, sebbene la GUI ne nasconda in parte). Mac OS Classic non li aveva; ::è stato utilizzato per la directory precedente. I percorsi senza :in essi erano directory corrente. Altrimenti, era previsto un percorso completo (che inizia con il nome del disco), con i componenti delimitati da :. Esempio:Macintosh HD:System Folder:Finder
derobert,

4

Questi sono collegamenti diretti alle directory self (.) E parent (..). Vengono creati quando si crea una directory. Non possono mai essere eliminati (senza eliminare la directory indicata da loro).

Se si crea una directory:

mkdir /tmp/foo

puoi vedere che in realtà ci sono 2 hardlink a / tmp / foo:

drwxr-xr-x 2 michal michal 4096 2011-08-07 18:40 /tmp/foo
           ^---- two hardlinks

il primo è dalla directory / tmp / che punta a / tmp / foo, e il secondo è il '.' con in / tmp / pippo / che punta a se stesso.


2

Inoltre, tieni presente che puoi utilizzare ls -A(anziché ls -a) per elencare tutti i file inclusi i file nascosti, ma escludendo le directory .e ...


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.