J'enseigne un cours d'introduction à UNIX / Linux dans un collège local et l'un de mes étudiants a posé la question suivante:
Pourquoi certains fichiers de mon répertoire sont-ils blancs et d'autres gris? Les blancs sont-ils ceux que j'ai créés aujourd'hui et les gris sont des fichiers existants?
En examinant cela, j'ai d'abord pensé que la réponse serait dans la LS_COLORS
variable, mais une enquête plus approfondie a révélé que les listes de couleurs étaient différentes lors de l'utilisation du -l
commutateur par rapport au -al
commutateur avec la ls
commande. Voir les captures d'écran suivantes:
L'utilisation ls -l
du fichier nommé «3» apparaît en blanc mais en utilisant le -al
commutateur, le même fichier affiche un gris.
Est-ce un bug dans ls ou quelqu'un sait-il pourquoi cela se produit?
la source
ls
commande elle-même.LS_COLORS='rs=0;1' ls -l
, mais cela semble très différent.ls
peut changer la couleur de sa sortie.ls
peuvent fournir de la couleur. ;-)Réponses:
Il semble que votre prompt-string (
$PS1
) définit l'attribut bold sur les caractères pour rendre les couleurs plus agréables et ne les désactive pas. La sortie dels
ne sait pas à ce sujet et n'est pas définie en gras. Donc, après la première sortie couleur dels
, tout semble plus sombre .la source
La sortie entière de ls sera imprimée dans la dernière couleur active . Si
ls
est appelé sans couleur:imprimera la liste des fichiers en rouge .
Ou, si aucun changement de couleur n'est nécessaire pour ls, la dernière couleur restera:
Pourtant, tout en rouge.
Mais, dès qu'il
ls
faut définir une couleur (puis réinitialiser les couleurs à la valeur par défaut utilisée par la console), la couleur utilisée à partir de ce moment sera la valeur par défaut de la console.Avec les trois premières lignes (jusqu'au point bleu) imprimées en rouge.
la source