GNU/Linux >> Tutoriels Linux >  >> Linux

Comment travailler avec des liens durs et des liens souples sous Linux

Liens physiques et liens symboliques sont des concepts importants à comprendre lorsque vous travaillez dans un environnement de type Unix. Dans cet article, nous discuterons de ce qu'est le lien physique et le lien logiciel et comment les créer sous Linux.

Linux traite tout comme un fichier. Qu'il s'agisse d'un périphérique bloc, d'un périphérique caractère, d'un socket ou d'un canal nommé, Linux les traitera comme un fichier. Liens physiques et liens symboliques sont également un type de fichier qui est en fait créé en référence à un autre fichier.

Qu'est-ce que Hardlink sous Linux

Lien physique est comme un clone du fichier original. Tous les liens physiques partagent le même numéro d'inode et la suppression de l'original ou de tout autre fichier lié en dur n'aura aucun effet sur les autres fichiers et vous pourrez toujours lire le contenu du fichier.

REMARQUE  : Les liens physiques ne peuvent pas être créés pour les répertoires.

Comment créer des liens physiques sous Linux

Voyons comment travailler avec des liens physiques. Je crée un fichier nommé file1.txt et y écrire du contenu.

$ cat file1.txt

Exécutez maintenant la commande ls avec le -i flag pour vérifier le numéro d'inode de file1.txt et le nombre de liens.

$ ls -li file1.txt

Créez maintenant un nouveau lien physique et exécutez la même commande ls pour vérifier le numéro d'inode. Vous verrez que les deux fichiers ont les mêmes numéros d'inode.

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

Je vais maintenant créer un nouveau fichier de lien physique à partir de file2.txt qui est déjà créé à partir de file1.txt . Vérifiez le nombre de liens et il est mis à jour à 3 dans tous les fichiers.

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

Comment supprimer les liens physiques sous Linux

Désormais, si vous supprimez l'un des fichiers liés en dur, le nombre de liens sera mis à jour en conséquence dans tous les fichiers et vous pourrez toujours accéder au contenu du fichier.

$ rm file1.txt

Pour supprimer complètement tous les fichiers liés en dur dans le système de fichiers, vous pouvez utiliser la commande find pour rechercher les fichiers avec le même numéro d'inode et supprimer les fichiers.

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

Pour supprimer les fichiers, vous pouvez ajouter un exec commande à la recherche commande.

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

REMARQUE  :Lorsque vous exécutez la recherche commande et si vous souhaitez analyser tous les répertoires du système de fichiers, il est préférable d'utiliser sudo .

Qu'est-ce que Softlinks sous Linux

Liens symboliques parfois appelés liens symboliques ou liens symboliques. Lorsque vous créez un lien symbolique, un nouveau fichier sera créé et ce fichier pointera vers le fichier parent. Considérez cela comme un raccourci que vous créez pour les fichiers et les dossiers. Un nouveau fichier aura un Inode différent de celui du fichier parent.

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

Comment créer des liens symboliques sous Linux

Créez maintenant un nouveau lien symbolique et exécutez la même commande ls pour vérifier le numéro d'inode. Vous verrez que les deux fichiers ont les mêmes numéros d'inode. Jetez également un coup d'œil au nombre de liens pour chaque fichier.

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

Jetez un œil au nombre de liens de l'image ci-dessus, il sera toujours 1 pour les liens symboliques puisque tous les fichiers reçoivent un numéro d'inode distinct. Désormais, si vous supprimez le lien symbolique, cela n'aura aucun effet sur le fichier d'origine.

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

Si vous supprimez le fichier d'origine, le fichier lié générera une erreur lorsque vous tenterez d'y accéder.

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

Parfois, vous pouvez supprimer le fichier parent mais oublier de supprimer tous les fichiers liés. Vous pouvez vérifier et nettoyer tous les liens symboliques orphelins en exécutant la commande suivante. Rechercher La commande essaiera de trouver tous les liens orphelins de /home/ répertoire et -delete supprimera les liens.

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

Voilà pour cet article. Nous aimerions entendre vos précieux commentaires ou tout conseil susceptible d'améliorer les articles.


Linux
  1. Comment manipuler les noms de fichiers contenant des espaces et des caractères spéciaux sous Linux

  2. Comment rediriger la sortie vers un fichier et Stdout sous Linux

  3. Qu'est-ce que NFS et comment l'installer sous Linux

  4. Comment puis-je voir du en Go au lieu de Mo sous Linux ?

  5. Fichier mv Linux avec un nom long

Comment utiliser la commande Linux rm avec des exemples

Fichier hôte Linux :comment le modifier et l'utiliser ?

Comment travailler avec le processus de premier plan et d'arrière-plan sous Linux

Comment travailler avec File and Shell Provisioner dans Vagrant

Comment créer et utiliser un fichier d'échange sous Linux

Comment gérer les noms de fichiers avec des espaces sous Linux