Pour lister tous les liens en dur, la commande awk
permet de lister les mêmes inodes en récupérant le champs %i
de stat
:
stat -c '%i %n' * | awk 'Doublon[$1]++' | cut -d ' ' -f 2- |
En inversant la commande, uniquement tous les liens symboliques peuvent être listés, (mais ainsi que les répertoires et les fichiers, qui ont leur unique inode):
stat -c '%i %n' * | awk '!Doublon[$1]++' | cut -d ' ' -f 2- |
Résumé :
HardLink | SoftLink |
---|---|
Accessible en utilisant plusieurs noms | Accessible par de nombreuses références pointant vers le fichier originel |
Si fichier d’origine supprimé : lien toujours accessible | Si fichier d’origine supprimé : lien invalide |
N° d’inode simlaire | N° d’inode différent |
ln fichier nomLien |
ln -s fichier nomLien |
Consomme moins de mémoire | Consomme plus de mémoire |
Lié qu’à sa propre partition | Peut être lié à d’autres systèmes de fichiers et être mis en réseau |
Pas de chemin relatif | Chemin relatif |
Documentation
https://unix.stackexchange.com/questions/167610/determining-if-a-file-is-a-hard-link-or-symbolic-link
https://www.tutorialspoint.com/difference-between-hard-link-and-soft-link
https://stackoverflow.com/questions/16282618/finding-files-that-are-not-hard-links-via-a-shell-script