Dans Ubuntu, "l'extension" d'un nom de fichier, c'est-à-dire que la partie après le point (.) Est normalement visible. Pourquoi Nautilus ne montre-t-il pas l'extension de Eclipse.desktop
alors que la commande ls
indique clairement qu'il s'agit du nom de fichier complet?
C'est le list view
; pas le icon view
.
Les fichiers .desktop
sont des fichiers spéciaux. Ils représentent applications dans l'interface graphique, sur votre bureau ou dans Dash/Unity. Pour ce faire, un GUI - nom de l'application est défini dans une ligne à l'intérieur du fichier dans la ligne
Name=Eclipse
Vous pouvez simplement changer le nom de l'application dans Dash et Unity, en modifiant cette ligne dans le fichier .desktop
, sans modifier le nom fichier du fichier .desktop
. Dans ce cas, peu importe si le fichier est exécutable ou non.
Si le fichier .desktop
est sur votre burea, cependant, s'il est not exécutable, il ne fonctionne pas comme un programme de lancement, pour des raisons expliquées dans la réponse de souravac, et "montre" sous son propre nom (fichier):
Eclipse.desktop
S'il est est exécutable et sur votre bureau, il fonctionne comme un lanceur et représente donc une application. Then affiche le nom de l'application, tel qu'il est défini dans la ligne Name=
Si le fichier .desktop
contient la ligne:
X-Ubuntu-Gettext-Domain
le fichier affiche même un nom spécifique à la langue, extrait d'un fichier de langue, qui apparaîtra ensuite dans Dash et Unity.
ci-dessous un exemple compliqué: nomfichier = inkskape.desktop, nom d'interface "de base" = Inkskape, nom traduit = éditeur Inkskape Vector Graphics
Dans la commande ls
, elle est purement basée sur le client et affiche toujours le nom fichier.
Citant de politique de sécurité d'Ubunt :
Bit d'exécution-autorisation requis
Les applications, y compris les bureaux et les shells, ne doivent pas exécuter de code exécutable à partir de fichiers lorsqu'elles sont à la fois:
- manque le bit exécutable
- situé dans le répertoire de base ou le répertoire temporaire d'un utilisateur.
Cela inclut les fichiers * .desktop, * .jar et * .exe.
Qu'est-ce qu'un fichier .desktop
valide sous le répertoire de base de l'utilisateur?
Selon la politique de sécurité d'Ubuntu, l'autorisation d'exécution dans les fichiers et les scripts shell .desktops
est indispensable pour exécuter le code exécutable à partir de ces fichiers lorsqu'ils se trouvent dans le répertoire de base d'un utilisateur.
Nautilus ne considère pas un fichier .desktop
comme un raccourci d’application valide, sauf s’il dispose d’un bit exécutable lorsqu’il se trouve dans le répertoire de base de l’utilisateur.
D'autre part, il est codé en dur dans le code source de Nautilus qu'il indiquera un nom de fichier .desktop
valide à partir du champ Name=
ou Name[$LANG]
à l'intérieur du fichier .desktop
en ignorant le nom de fichier. et extension. Ceci ne s'applique pas aux fichiers .sh
ou .jar
dans Nautilus.
Exemple: Lors d'une nouvelle installation Ubuntu, chaque utilisateur obtient examples.desktop
dans son répertoire personnel. Le nom du fichier est examples.desktop
. Mais en nautile, on peut le voir comme Examples
. Si vous regardez à l'intérieur du fichier .desktop
, vous pouvez voir ce qui suit (je n'en montre qu'une partie):
Nom = Exemples Nom [aa] = Ceelallo .. Nom [en_AU] = Exemples Nom [en_CA] = Exemples Nom [ en_GB] = Exemples ..
Vous pouvez vérifier l'autorisation (essayez ls -la /path/to/filename.extension
) de Eclipse.desktop
et smartgit.desktop
. Le premier a le bit exécutable défini alors que le dernier ne l’a pas.
C’est pourquoi Nautilus reconnaît Eclipse.desktop
comme raccourci d’application et n’affiche pas son extension.
Si un fichier .desktop
est exécutable, Nautilus le reconnaîtra comme un raccourci sur le bureau et n’affichera pas le nom du fichier, mais plutôt la chaîne définie comme valeur de la propriété Name=
du fichier.
À cet lien auteur "fragos" écrit:
Malheureusement, si vous ouvrez ce dossier dans Nautilus, les fichiers .desktop apparaissent avec l’icône spécifiée dans le fichier et le nom du fichier appelé dans le fichier.
Quand il dit "nom de fichier appelé à l'intérieur", il signifie que le nom de fichier affiché est pris de l'intérieur. Je dirais "nom de fichier appelé lorsque le bit exécutable est défini". Il a peut-être raison de dire que c'est regrettable. Étrangement, certains ont le bit d'exécution défini et d'autres non. Ceux qui n'ont PAS le bit d'exécution défini ne sont pas une cause de malheur mais je ne sais pas pourquoi j'ai eu de la chance. Lorsque le bit est défini, cela peut être considéré comme une erreur ou un bogue.