GNU/Linux >> Linux Esercitazione >  >> Linux

Perché '/' ha una voce '..'?

Questo mi ha sempre lasciato perplesso. Perché la directory principale contiene un riferimento a una directory padre?

[email protected]:/$ ls -a
.     build  home            lib32       mnt   .rpmdb   sys  vmlinuz
..    cdrom  initrd.img      lib64       opt   sbin     tmp  vmlinuz.old
bin   dev    initrd.img.old  lost+found  proc  selinux  usr
boot  etc    lib             media       root  srv      var

Capisco come vengono gestite le directory nel filesystem:ogni directory ha n+2 puntatori a se stessa (n =numero di sottodirectory all'interno della directory). Uno per ogni sottodirectory immediata, uno per il suo genitore e uno per se stessa.

Ma cos'è / è il genitore?

Risposta accettata:

/.. punta a / :

$ ls -id /
2 /
$ ls -id /..
2 /..

Entrambi hanno lo stesso numero di inode, che sembra essere 2 su questo sistema. (Il valore esatto non ha importanza.)

È fatto per coerenza. In questo modo, non è necessario che ci sia codice nel kernel per controllare dove si trova attualmente quando elabora un .. in un percorso. Puoi dire cd .. per sempre, e non andare mai più in profondità della radice.


Linux
  1. Perché Sudo ignora gli alias?

  2. Il curl ha un timeout?

  3. Perché non posso usare Cd in uno script Bash??

  4. In `mentre Ifs=Leggi..`, perché Ifs non ha alcun effetto?

  5. Vsftpd non elenca il contenuto di una directory?

Perché Unix Time inizia al 1970-01-01?

Perché è Rm -rf e non Rmdir -rf?

Python ha un argomento argc?

Perché una cartella deve essere eseguibile?

perché sftp rmdir non funziona?

Cos'è una GPU Matrox e perché il server UNIX della mia università ne ha una?