GNU/Linux >> Linux Esercitazione >  >> Linux

Come lavorare con hardlink e softlink in Linux

Collegamenti reali e Collegamenti software sono concetti importanti da comprendere quando si lavora in un ambiente simile a Unix. In questo articolo, discuteremo cos'è l'hard link e il soft link e come crearli in Linux.

Linux tratta tutto come un file. Che si tratti di un dispositivo a blocchi, di un dispositivo a caratteri, di un socket o di una named pipe, Linux li tratterà come un file. Collegamenti reali e collegamenti software sono anche un tipo di file che viene effettivamente creato in riferimento a un altro file.

Cos'è Hardlink in Linux

Collegamento fisico è come un clone del file originale. Tutti i collegamenti reali condividono lo stesso numero di inode e la rimozione dell'originale o di qualsiasi altro file con collegamento reale non avrà alcun effetto su altri file e comunque puoi leggere il contenuto del file.

NOTA :non è possibile creare hardlink per le directory.

Come creare collegamenti reali in Linux

Vediamo come lavorare con gli hard link. Sto creando un file chiamato file1.txt e scrivendoci alcuni contenuti.

$ cat file1.txt

Ora esegui il comando ls con -i flag per controllare il numero di inode di file1.txt e conteggio dei link.

$ ls -li file1.txt

Ora crea un nuovo hard link ed esegui lo stesso comando ls per controllare il numero di inode. Vedrai che entrambi i file hanno gli stessi numeri di inode.

$ ln <source-file> <destination-file>
$ ln file1.txt file2.txt

Ora creerò un nuovo file di collegamento fisico da file2.txt che è già stato creato da file1.txt . Controlla il conteggio dei link e viene aggiornato a 3 in tutti i file.

$ ls -li file2.txt /home/karthick/file3.txt

Come rimuovere hard link in Linux

Ora, se elimini uno qualsiasi dei file con collegamenti fisici, il conteggio dei collegamenti verrà aggiornato di conseguenza in tutti i file e potrai comunque accedere al contenuto del file.

$ rm file1.txt

Per rimuovere completamente tutti i file con collegamenti fisici nel file system, puoi utilizzare il comando find per cercare i file con lo stesso numero di inode e rimuovere i file.

$ find <directory> -inum <inode-number>  # SYNTAX
$ find / -inum 415314          # Finding all files with Inode 51425368

Per rimuovere i file puoi aggiungere un exec comando per trova comando.

$ sudo find / -inum415314 -exec rm -f {} \;

NOTA :Quando esegui trova comando e se desideri scansionare tutte le directory nel file system è meglio usare sudo .

Cos'è i Softlink in Linux

Collegamenti software a volte chiamati collegamenti simbolici o collegamenti simbolici. Quando crei un collegamento software, verrà creato un nuovo file e quel file punterà al file principale. Pensa a questo come a una scorciatoia che crei per file e cartelle. Un nuovo file avrà un Inode diverso rispetto al file principale.

$ cat > slink.txt
$ ls -li slink.txt

Come creare collegamenti software in Linux

Ora crea un nuovo collegamento software ed esegui lo stesso comando ls per controllare il numero di inode. Vedrai che entrambi i file hanno gli stessi numeri di inode. Inoltre, dai un'occhiata al conteggio dei link per ogni file.

$ ln -s <source> <destination>      # SYNTAX
$ ln -s file1.txt file2.txt

Dai un'occhiata al conteggio dei link dall'immagine sopra, sarà sempre 1 per i collegamenti software poiché tutti i file ottengono un numero di Inode separato. Ora se elimini il collegamento software non avrà alcun effetto sul file originale.

#  grep ^ ./slink*   # Display the contents of file1, file2
#  rm slinked_linked.txt

Se elimini il file originale, il file collegato genererà un errore quando tenti di accedervi.

$ ls -li
$ rm slink.txt
$ ls -li
$ cat slink_linked.txt

A volte potresti rimuovere il file principale ma dimenticare di rimuovere tutti i file collegati. È possibile controllare e pulire tutti i collegamenti software orfani eseguendo il comando seguente. Trova Il comando proverà a trovare tutti i link orfani da /home/ directory e -delete rimuoverà i collegamenti.

# find -L /home/ -type l -delete

Questo è tutto per questo articolo. Ci piacerebbe sentire il tuo prezioso feedback o eventuali suggerimenti che possono migliorare gli articoli.


Linux
  1. Come manipolare nomi di file con spazi e caratteri speciali in Linux

  2. Come estrarre i file .gz e .tar.gz in Linux

  3. Linux:come far funzionare Oracle Java 7 con Setcap Cap_net_bind_service+ep?

  4. Trova un file con i comandi Trova e individua in Linux

  5. Come vedo du in GB invece di MB in Linux?

Come utilizzare il comando Linux rm con esempi

File host Linux:come modificarlo e utilizzarlo?

Come lavorare con il processo in primo piano e in background in Linux

Come lavorare con File e Shell Provisioner in Vagrant

Come creare e utilizzare file di scambio su Linux

Come affrontare i nomi dei file con gli spazi in Linux