Warum wird dieser Dateiname in Nautilus abgeschnitten?

Dec 06 2016

In Ubuntu ist normalerweise die "Erweiterung" eines Dateinamens, dh der Teil nach dem Punkt (.), Sichtbar. Warum zeigt Nautilus nicht die Erweiterung an, eclipse.desktopwenn der lsBefehl deutlich anzeigt, dass es sich um den vollständigen Dateinamen handelt?

Das ist das list view; nicht die icon view.

Antworten

18 JacobVlijm Dec 07 2016 at 07:38

Über .desktop-Dateien und ihre spezielle Funktion

.desktopDateien sind spezielle Dateien. Sie repräsentieren Anwendungen in der GUI, entweder auf Ihrem Desktop oder in Dash / Unity. Zu diesem Zweck wird ein GUI- Name der Anwendung in einer Zeile innerhalb der Datei in der Zeile festgelegt

Name=Eclipse

Sie können einfach den Namen , wie die Anwendung zeigt in Dash und Unity ändern, indem Sie diese Zeile innerhalb der sich ändernden .desktopDatei, ohne das Ändern Dateiname der .desktopDatei. In diesem Fall ist es unerheblich, ob die Datei ausführbar ist oder nicht.

Wenn sich die .desktopDatei jedoch auf Ihrem Desktop befindet und nicht ausführbar ist, funktioniert sie aus den in der Antwort von souravac erläuterten Gründen nicht als Starter und wird unter ihrem eigenen (Datei-) Namen "angezeigt":

eclipse.desktop

Wenn es ist ausführbar und auf Ihrem Desktop, funktioniert es als Trägerrakete und so ist es eine Anwendung darstellt. Dann wird der Name der Anwendung angezeigt, wie in der Zeile festgelegtName=

Sprachspezifischer Name

Wenn die .desktopDatei die Zeile hat:

X-Ubuntu-Gettext-Domain

Die Datei zeigt sogar einen sprachspezifischen Namen an, der aus einer Sprachdatei abgerufen wurde und dann in Dash und Unity angezeigt wird.


unten ein kompliziertes Beispiel: Dateiname = inkskape.desktop, "grundlegender" Schnittstellenname = Inkskape, übersetzter Name = Inkskape Vector Graphics Editor

Der Befehl ls

Der lsBefehl ist rein klibasiert und zeigt immer den Dateinamen an.

20 souravc Dec 07 2016 at 06:29

Zitat aus Ubuntus Sicherheitsrichtlinie :

Ausführungsberechtigungsbit erforderlich

  • Anwendungen, einschließlich Desktops und Shells, dürfen keinen ausführbaren Code aus Dateien ausführen, wenn beide:

    • Fehlen des ausführbaren Bits
    • befindet sich im Home-Verzeichnis oder im temporären Verzeichnis eines Benutzers.
  • Dies umfasst * .desktop-, * .jar- und * .exe-Dateien.

Was ist eine gültige .desktopDatei im Home-Verzeichnis des Benutzers?

Gemäß der Sicherheitsrichtlinie von Ubuntu ist die Ausführungsberechtigung in .desktopsDateien und Shells-Skripten ein Muss, um ausführbaren Code aus diesen Dateien auszuführen, wenn sie sich im Home-Verzeichnis eines Benutzers befinden.

Nautilus betrachtet eine .desktopDatei nicht als gültige Anwendungsverknüpfungen, es sei denn, sie verfügt über ein ausführbares Bit, wenn sie sich im Home-Verzeichnis eines Benutzers befinden.

Andererseits ist es im Quellcode von nautilus fest codiert, dass .desktopder Name einer gültigen Datei aus dem Feld Name=oder Name[$LANG]in der .desktopDatei angezeigt wird, wobei der Dateiname und die Erweiterung ignoriert werden. Dies gilt nicht für .shoder .jarDateien in Nautilus.

Beispiel: Bei einer neuen Ubuntu-Installation erhält jeder Benutzer sein Ausgangsverzeichnis examples.desktop. Der Dateiname lautet examples.desktop. Aber im Nautilus kann man es so sehen Examples. Wenn Sie in die .desktopDatei schauen, sehen Sie Folgendes (ich zeige nur einen Teil davon):

Name = Beispiele
Name [aa] = Ceelallo
..
Name [en_AU] = Beispiele
Name [en_CA] = Beispiele
Name [en_GB] = Beispiele
..

Sie können die Berechtigung (try ls -la /path/to/filename.extension) von Eclipse.desktopund überprüfen smartgit.desktop. Ersteres hat ein ausführbares Bit gesetzt, letzteres nicht.

Aus diesem Grund erkennt nautilus Eclipse.desktopals Anwendungsverknüpfungen und zeigt seine Erweiterung nicht an.

6 AlexP Dec 07 2016 at 06:48

Wenn eine .desktopDatei ausführbar ist, erkennt Nautilus sie als Desktop-Verknüpfung und zeigt nicht den Namen der Datei an, sondern die Zeichenfolge, die als Wert der Name=Eigenschaft in der Datei festgelegt wurde.

H2ONaCl Dec 07 2016 at 08:46

Unter diesem Link schreibt der Autor "fragos":

Wenn Sie diesen Ordner in nautilus öffnen, werden die .desktop-Dateien leider mit dem in der Datei angegebenen Symbol und dem in der Datei angegebenen Dateinamen angezeigt.

Wenn er "Dateiname genannt innerhalb" sagt, bedeutet dies, dass der angezeigte Dateiname von innen übernommen wird. Ich würde sagen "Dateiname, der innerhalb gesetzt wird, wenn das ausführbare Bit gesetzt ist". Er kann recht haben, dass dies unglücklich ist. Seltsamerweise habe ich einige, bei denen das Ausführungsbit gesetzt ist, und einige, bei denen dies nicht der Fall ist. Diejenigen, bei denen das Ausführungsbit NICHT gesetzt ist, sind keine Ursache für Unglück, aber ich weiß nicht, warum ich Glück hatte. Wenn das Bit gesetzt ist, kann es vielleicht als eine Eigenart oder ein Fehler angesehen werden.