Simple curiosité: différences entre attr, setfattr, getfattr et respectivement xattr, setxattr,getxattr

Est-ce que ces 2 familles de commandes sont concurrentes? compatibles entre elles? (autrement dit, manipulent-elles les mêmes attributs?)
Je découvre que j’ai pu confondre les 2, car j’utilise couramment, depuis longtemps, les commandes du paquet attr (setfattr et getfattr) en pensant les préserver avec l’option -X de rsync.

Ces attributs le sont bien, mais est-ce grâce à l’option -X ou plus simplement une fonction standard du système de fichier (ext4, xfs)?

Après recherches et tests, il semble que la commande

xattr -p user.comment fichier

affiche la valeur de user.comment exactement comme:

getfattr -n user.comment fichier

Il est donc probable qu’un seul des paquets attr ou xattr soit utile, et fournissent des outils analogues.

Il faudrait continuer l’exploration, mais j’ai bien d’autres charges à traiter! (hors informatique)

simple-curiosite-differences-entre-attr-setfattr-getfattr-et-respectivement-xattr-setxattr-getxattr

Dans le premier cas les commandes proviennent de deux paquets que tu installe, l’autre c’est le kernel qui fourni ça.

Pour le premier cas je dirais c’est l’utilisation de l’humain, la seconde c’est plus pour les dev ou les programmes :wink:

C’est compatible, par contre à utiliser avec précaution, les erreur vont vite lorsque l’on manipule les attributs :wink:

Merci clochette,

pour mes essais, j’ai constaté que j’avais déjà installé le paquet attr.

Mais pour utiliser les outils xattr, j’ai du également installer le paquet xattr.

Je ne suis pas sur d’avoir tout compris de cette question des paquets.

PS
je ne pense pas en faire usage autrement que depuis de nombreuses années, avec un script setcl pour écrire un commentaire par fichier ou répertoire, et lscl pour les lister.

J’ai soulevé cette question en relisant le man de rsync.

Voici un exemple de ma commande lscl utilisant getfattr pour afficher les commentaires (ici avec l’option -a pour afficher aussi les autres fichiers)

Capture_lscl