come funziona hard link e soft link


0

Il concetto è abbastanza difficile da capire per me.

Ho capito che il collegamento reale punta allo stesso file in modo che abbiano le stesse dimensioni del file originale e che i collegamenti software siano basati sul testo e puntino al punto del file desiderato.

Quello che non capisco è il motivo per cui quando si punta a un file con un hard link e quindi si sopprime il file originale, il collegamento fisico rappresenta ancora il file e quindi i file esistono ancora?

So che quando cancelli un file non è veramente cancellato, ma dice solo che qui c'è spazio vuoto su cui puoi scrivere, quindi il file è ancora qui nonostante l'ho soppresso, quindi penso che fare pressione su un file significhi solo cancellare il puntatore a e non il file stesso ed è per questo che è più veloce da eliminare, quindi copia un file.

Un file rimarrà sempre esistente fintanto che almeno un link punta ancora ad esso, quindi, poiché il collegamento fisico è direttamente connesso al file, non verrà eliminato e prenderà il nome del secondo link.

Ma se si tratta di un collegamento soft, abbiamo solo un file di testo che mostra la directory del file desiderato in modo che non abbia alcun rapporto sullo stato del file originale, questa è la mia teoria spero che qualcuno mi spieghi e corregga.


forse questo è interessante per te askubuntu.com/questions/108771/...
RamonRobben

È più probabile che le persone leggano la tua domanda / risposta se la formattate, quindi non è un muro di testo . Si prega di leggere Aiuto Markdown e modificare la tua domanda per aggiungere paragrafi e punti elenco ...
DavidPostill

Risposte:


2

Quello che non capisco è il motivo per cui quando si punta a un file con un hard link e quindi si sopprime il file originale, il collegamento fisico rappresenta ancora il file e quindi i file esistono ancora?

I collegamenti fisici sono fondamentalmente solo nomi collegati a un inode, e il nome originale che date a un nuovo file è anch'esso un hardlink. Quindi, se elimini l'originale, non stai effettivamente "sopprimendo il file originale" - stai solo cancellando il suo hardlink originale.

Viene anche chiamato syscall "remove file" unlink(2) - vedi Linux o FreeBSD Documenti.

Un file rimarrà sempre esistente fintanto che almeno un link punta ancora ad esso, quindi, poiché il collegamento fisico è direttamente connesso al file, non verrà eliminato e prenderà il nome del secondo link.

Come sopra. hardlinks siamo essenzialmente solo nomi per il file. Quindi, se ha due collegamenti (originali e creati in aggiunta), ha due nomi.

(Nella maggior parte dei sistemi Unix possono esistere anche file senza collegamenti (nessun nome) purché un processo ne mantenga un handle: è un trucco comune utilizzato con i file temporanei: crea un file di grandi dimensioni in / tmp e scollegalo immediatamente. )

Ma se si tratta di un collegamento soft abbiamo solo un file di testo che mostra la directory del file desiderato in modo che non abbia alcun rapporto sullo stato del file originale

Sembra giusto.


grazie, puoi dirmi qualcosa in più su questo inode? quindi quando guardo le mie directerie l'hdd non cerca i file carica solo tutti i link che riesce a trovare, ecco perché la navigazione è così veloce? anche se ho 4 link e sopprimono l'originale, come sceglierà il pc il prossimo nome ufficiale del file, se ho entrambi i link hard e soft per un file su quale link funzionerà il pc
Ilies Bekhtaoui

Non esiste una cosa come "il nome del file ufficiale". Tutti i collegamenti fissi, sia quelli originali che quelli creati successivamente, lo sono ugualmente 'ufficiale'.
grawity

grazie era solo un modo per dire il nome che ora è quello che viene visualizzato o il nome del file
Ilies Bekhtaoui

Ma sono tutti visualizzati in modo identico. Non esiste un nome "primo".
grawity

ma quando visualizzi i file, sceglie almeno un nome, e questo è il primo a cui è stato mai assegnato no?
Ilies Bekhtaoui
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.