0 votes

Ls -g : 'man ls' dit que l'option -g n'a aucun effet, mais ça fonctionne.

MacOS 14.3, zsh 5.9 (x86_64-apple-darwin23.0). man ls:

-g: Cette option n'a aucun effet. Elle est uniquement disponible pour des raisons de compatibilité avec 4.3BSD, où elle était utilisée pour afficher le nom du groupe dans le format de sortie long (-l).

Mais cela fonctionne définitivement.

ls -l:

-rw-r--r--@ 1 john  staff   0 Mar 13 09:06 file1.txt
-rw-r--r--@ 1 john  staff   0 Mar 13 09:06 file2.txt
drwxr-xr-x  2 john  staff  64 Mar 13 09:06 folder1
drwxr-xr-x  2 john  staff  64 Mar 13 09:06 folder2

ls -g:

-rw-r--r--@ 1 staff   0 Mar 13 09:06 file1.txt
-rw-r--r--@ 1 staff   0 Mar 13 09:06 file2.txt
drwxr-xr-x  2 staff  64 Mar 13 09:06 folder1
drwxr-xr-x  2 staff  64 Mar 13 09:06 folder2

et ls -go:

-rw-r--r--@ 1    0 Mar 13 09:06 file1.txt
-rw-r--r--@ 1    0 Mar 13 09:06 file2.txt
drwxr-xr-x  2   64 Mar 13 09:06 folder1
drwxr-xr-x  2   64 Mar 13 09:06 folder2

Comment est-ce possible ? Et est-il sûr d'utiliser ls -g dans des scripts ?

2voto

David Anderson Points 30783

Alors que la sortie man ls pour l'option -g a changé avec la sortie de Monterey, le comportement par rapport aux options -g et -o n'a pas changé depuis au moins Snow Leopard. Fondamentalement, la description précédente est probablement meilleure que la description actuelle. Comme Allan l'a déjà indiqué dans un commentaire : rien n'est "futur proof". Certains détails sont donnés ci-dessous.

L'OP a offert une description partielle. La description complète est donnée ci-dessous.

     -g      Cette option n'a aucun effet. Elle est uniquement disponible pour
             la compatibilité avec 4.3BSD, où elle était utilisée pour afficher le nom du groupe
             dans la sortie au format long (-l). Cette option est incompatible
             avec IEEE Std 1003.1-2008 ("POSIX.1").

La description complète à partir de Leopard 10.5 jusqu'à Big Sur 13.5 est donnée ci-dessous.

     -g      Cette option est uniquement disponible pour la compatibilité avec POSIX ; elle est
             utilisée pour afficher le nom du groupe dans la sortie au format long (-l)
             (le nom du propriétaire est supprimé).

Alors que ce n'est pas partie de IEEE Std 1003.1-2008, ce qui suit est donné dans les ls spécifications.

ls

La norme actuelle IEEE Std 1003.1-2017 (Révision de IEEE Std 1003.1-2008) a ce qui suit pour ls spécifications.

current ls

Le comportement montré dans la question de l'OP a été testé (par moi) pour être le même sur les versions suivantes de OS X/macOS :

  • Ventura 13.3.1 (a)
  • Monterey 12.5
  • Catalina 10.15.7
  • High Sierra 10.13.6
  • Snow Leopard 10.6

En passant, la sortie man ls pour l'option -o n'a également pas changé depuis Leopard 10.5.

     -o      Liste en format long, mais exclut l'identifiant du groupe.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X