[gelöst] Was bedeuten Dateinammen im Hochkomma?

Warum Debian? Was muss ich vorher wissen? Wo geht's nach der Installation weiter?
Benutzeravatar
Emess
Beiträge: 3221
Registriert: 07.11.2006 15:02:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Im schönen Odenwald
Kontaktdaten:

[gelöst] Was bedeuten Dateinammen im Hochkomma?

Beitrag von Emess » 01.04.2020 19:02:17

Normal nutze ich Dolphin als Dateimanager.
Wenn ich dann über F4 die Konsole öffne werden einzelne Dateien im Hochkomma dargestellt.
Was bedeutet das?

Code: Alles auswählen

'Formel fr Stromverbrauch.odt'
'Frau Brandt.odt'
 gaby.jpg
 gerda_gewicht.ods
 gewerbe.odt
 Gewicht.ods
'Handbuch Vereinsmeister.pdf'
 Hanwerkskammer.odt
'zoom_amd64 .deb'

Das ist mir aufgefallen als ich zoom mittels Debianaptitude installieren wollte. Ohne Hochkomma werden die Dateien nicht gefunden.
Also was hat das Hochkomma zu bedeuten?
Zuletzt geändert von Emess am 01.04.2020 21:47:37, insgesamt 1-mal geändert.
Debian Testing (bleibt es auch)
Debian Buster KDE Plasma 5x Kernel 4.19.0.6-amd64
Notebook HP ZBook 17 G2

http://www.emess62.de

Benutzeravatar
Meillo
Moderator
Beiträge: 5809
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Was bedeuten Dateinammen im Hochkomma?

Beitrag von Meillo » 01.04.2020 19:04:46

Damit wird der Whitespace gequotet, damit der Dateiname trotz Whitespace als ein Wort wahrgenommen wird.
Use ed(1) once in a while!

eggy
Beiträge: 2132
Registriert: 10.05.2008 11:23:50

Re: Was bedeuten Dateinammen im Hochkomma?

Beitrag von eggy » 01.04.2020 19:18:02

Die Dateinamen enthalten Leerzeichen.

Code: Alles auswählen

cd /tmp/
echo 1 > eins
echo 2 > zwei
echo 3 > drei
echo 4 > "eins zwei drei"
cat eins zwei drei
cat 'eins zwei drei'
Das erste cat gibt

Code: Alles auswählen

 
 1
 2
 3
 
das zweite cat aus.

Für die Shell ist es relevant, ob in Dateinamen Leerzeichen drin sind oder nicht, Leerzeichen von denen die Shell nicht weiß, ob es Leerzeichen im Sinne von Buchstaben oder Leerzeichen im Sinne von Parametertrennern sind. Das von Meillo angesprochene Quoting findest Du oft auch als Schrägstrich vor dem Leerzeichen. Die Anzeige hier ist Menschenfreundlich gemeint, copy und paste und Weiterverarbeiten von Output.

Benutzeravatar
Emess
Beiträge: 3221
Registriert: 07.11.2006 15:02:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Im schönen Odenwald
Kontaktdaten:

Re: Was bedeuten Dateinammen im Hochkomma?

Beitrag von Emess » 01.04.2020 19:59:35

Meillo hat geschrieben: ↑ zum Beitrag ↑
01.04.2020 19:04:46
Damit wird der Whitespace gequotet, damit der Dateiname trotz Whitespace als ein Wort wahrgenommen wird.
Also Dateinamen mit Leerzeichen. Versteh ich das richtig?
Debian Testing (bleibt es auch)
Debian Buster KDE Plasma 5x Kernel 4.19.0.6-amd64
Notebook HP ZBook 17 G2

http://www.emess62.de

Benutzeravatar
Lord_Carlos
Beiträge: 5057
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Was bedeuten Dateinammen im Hochkomma?

Beitrag von Lord_Carlos » 01.04.2020 20:01:19

Emess hat geschrieben: ↑ zum Beitrag ↑
01.04.2020 19:59:35
Meillo hat geschrieben: ↑ zum Beitrag ↑
01.04.2020 19:04:46
Damit wird der Whitespace gequotet, damit der Dateiname trotz Whitespace als ein Wort wahrgenommen wird.
Also Dateinamen mit Leerzeichen. Versteh ich das richtig?
Ja, kannst auch zoom_amd64\ .deb schreiben wenn dir das Lieber ist.

Kann TAB das bei dir nicht vervollstaendigen? Also dpkg -i zoom<TAB> oder aehnliches?

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
Meillo
Moderator
Beiträge: 5809
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Was bedeuten Dateinammen im Hochkomma?

Beitrag von Meillo » 01.04.2020 21:09:13

Emess hat geschrieben: ↑ zum Beitrag ↑
01.04.2020 19:59:35
Meillo hat geschrieben: ↑ zum Beitrag ↑
01.04.2020 19:04:46
Damit wird der Whitespace gequotet, damit der Dateiname trotz Whitespace als ein Wort wahrgenommen wird.
Also Dateinamen mit Leerzeichen. Versteh ich das richtig?
... plus alle anderen sonst noch ``problematischen'' Zeichen, wie Dollarzeichen, Backticks, Double-Quotes, Backslashes, ... (Whitespace sind sowohl Leerzeichen als auch Tabs.) Das ist keine vollstaendige Liste, enthaelt aber die vermutlich haeufigsten Faelle.

Frage nur weiter wenn dir was unklar ist. Wir koennen gerne noch besser versuchen es dir in einer Sprache zu vermitteln mit der du etwas anfangen kannst.




Btw: Interessant wird der Fall, wenn der Dateiname ein Single-Quote enthaelt, weil man das nicht mit Single-Quotes quoten kann. Was also zeigt die Anwendung bei einer Datei an, die du so anlegst:

Code: Alles auswählen

>"a'b"
(Das legt in der Shell eine Datei an, deren Name aus drei Zeichen besteht: Buchstabe a, Single-Quote (= Apostroph), Buchstabe b.)


@eggy: Nettes Beispiel. ;-)
Use ed(1) once in a while!

fischic
Beiträge: 307
Registriert: 24.12.2019 12:25:08

Re: Was bedeuten Dateinammen im Hochkomma?

Beitrag von fischic » 01.04.2020 21:14:16

Du kannst ja mal versuchen

Code: Alles auswählen

soffice Formel fr Stromverbrauch.odt
aus einem Terminal heraus zu starten. Das Ergebnis dürfte das Verständnis von Meillos 1. Beitrag erweitern. :wink:

wobei: kommt mir seltsam vor. Um auszuschließen, dass dir da der Dolphin in die Suppe spuckt, schaute ich mir da nochmal den Dateinamen mit einem schlichten an.

Und das tut man ja auch nicht: Leerzeichen und Nicht-Standard-Ascii-Zeichen im Dateinamen verwenden! :mrgreen:

Benutzeravatar
Emess
Beiträge: 3221
Registriert: 07.11.2006 15:02:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Im schönen Odenwald
Kontaktdaten:

Re: Was bedeuten Dateinammen im Hochkomma?

Beitrag von Emess » 01.04.2020 21:47:02

Ich denke, ich habe es kapiert.
Danke an alle.
Debian Testing (bleibt es auch)
Debian Buster KDE Plasma 5x Kernel 4.19.0.6-amd64
Notebook HP ZBook 17 G2

http://www.emess62.de

fischic
Beiträge: 307
Registriert: 24.12.2019 12:25:08

Re: [gelöst] Was bedeuten Dateinammen im Hochkomma?

Beitrag von fischic » 01.04.2020 22:34:37

Deine Beispiele lassen mir keine Ruhe! Also bei 'zoom_amd64 .deb' vermag ich mir vorzustellen, dass da "too many fingers on keyboard error" zugeschlagen hat, aber ich kann mir nicht vorstellen, dass jemand, der den Dateinamen Formel[leer]für[leer]Stromverbrauch[dot]odt erzeugen möchte, sich zufrieden gibt mit Formel[leer]fr[leer]Stromverbrauch[dot]odt. Wo ist das deutsche ü geblieben? LO hat's nach meinem Testen nicht verschluckt. :wink:

Benutzeravatar
Meillo
Moderator
Beiträge: 5809
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: [gelöst] Was bedeuten Dateinammen im Hochkomma?

Beitrag von Meillo » 01.04.2020 23:01:37

fischic hat geschrieben: ↑ zum Beitrag ↑
01.04.2020 22:34:37
aber ich kann mir nicht vorstellen, dass jemand, der den Dateinamen Formel[leer]für[leer]Stromverbrauch[dot]odt erzeugen möchte, sich zufrieden gibt mit Formel[leer]fr[leer]Stromverbrauch[dot]odt. Wo ist das deutsche ü geblieben? LO hat's nach meinem Testen nicht verschluckt. :wink:
Das ist bestimmt ein Encoding-Problem ... habe ich auch in einer ganzen Reihe von Dateien ... eben in denjenigen, die schon etwas aelter sind, von Vorgaengersystemen uebernommen worden sind. Manchmal benenne ich sie um, oft bleiben sie aus Faulheit so wie sie sind, weil die Tab-Completion und Shell-Globbing mit ihnen zurecht kommen. (Heutzutage schreibe ich -- wie man sieht -- fast nur noch mit den US-ASCII-Zeichen, wodurch solche Probleme gar nicht mehr entstehen.) Ich will damit aber nicht Emess' Antwort vorgreifen.


Was *mich* mehr interessieren wuerde waere eben genau der Fall mit dem Single-Quote im Dateinamen, was die F4-Dolphin-Konsole dann anzeigt. ;-)

Da das urspruengliche Problem nun ja geloest ist: Bahn frei fuer alles was uns sonst noch zum Thema einfaellt! :-D
Use ed(1) once in a while!

debianoli
Beiträge: 3773
Registriert: 07.11.2007 13:58:49
Wohnort: Augschburg

Re: [gelöst] Was bedeuten Dateinammen im Hochkomma?

Beitrag von debianoli » 02.04.2020 08:14:26

Kleiner Tipp am Rande: Debiandetox beseitigt alle störenden Zeichen aus Datei- und Verzeichnis-Namen.

wanne
Moderator
Beiträge: 6402
Registriert: 24.05.2010 12:39:42

Re: Was bedeuten Dateinammen im Hochkomma?

Beitrag von wanne » 02.04.2020 10:32:37

Meillo hat geschrieben: ↑ zum Beitrag ↑
01.04.2020 21:09:13
Btw: Interessant wird der Fall, wenn der Dateiname ein Single-Quote enthaelt, weil man das nicht mit Single-Quotes quoten kann. Was also zeigt die Anwendung bei einer Datei an, die du so anlegst:
Nein. Der interesanteste Fall ist, wenn du eine Datei mit NULL (Also z.B. der Name den echo a\0b ausgibt.) anlegst. Das kann man gar nicht quoten ;-). Zum Glück gibt es kein mir bekanntes Dateisystem, dass das kann. (Vor allem wäre auch der Linux Kernel zu blöd die wirklich anzulegen. Niemand hindert einen daran, das mit nem anderen Betriebssystem zu machen. :twisted: ) Auch schön sind welche die mit - anfangen. So "-rf" oder so macht sich ganz lustig
rot: Moderator wanne spricht, default: User wanne spricht.

MSfree
Beiträge: 5567
Registriert: 25.09.2007 19:59:30

Re: [gelöst] Was bedeuten Dateinammen im Hochkomma?

Beitrag von MSfree » 02.04.2020 11:18:04

Auch ganz lustig:

Code: Alles auswählen

touch "*"
ls -l
aber bitte nicht mit rm * versuchen, zu löschen! :mrgreen:

Benutzeravatar
Meillo
Moderator
Beiträge: 5809
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Was bedeuten Dateinammen im Hochkomma?

Beitrag von Meillo » 02.04.2020 21:39:32

wanne hat geschrieben: ↑ zum Beitrag ↑
02.04.2020 10:32:37
Meillo hat geschrieben: ↑ zum Beitrag ↑
01.04.2020 21:09:13
Btw: Interessant wird der Fall, wenn der Dateiname ein Single-Quote enthaelt, weil man das nicht mit Single-Quotes quoten kann. Was also zeigt die Anwendung bei einer Datei an, die du so anlegst:
Nein. Der interesanteste Fall ist, wenn du eine Datei mit NULL (Also z.B. der Name den echo a\0b ausgibt.) anlegst. Das kann man gar nicht quoten ;-). Zum Glück gibt es kein mir bekanntes Dateisystem, dass das kann. (Vor allem wäre auch der Linux Kernel zu blöd die wirklich anzulegen. Niemand hindert einen daran, das mit nem anderen Betriebssystem zu machen. :twisted: )
Ext-Dateisysteme verbieten Dateinamen, die Slash oder Null-Bytes enthalten. Vermutlich wird es schwer werden ueberhaupt ein Dateisystem zu finden, das Null-Bytes in Dateinamen erlaubt. NTFS erlaubt sie auch nicht. Falls man dann so ein Dateisystem gefunden hat und auch noch ein Betriebssystem, das in der Lage ist Dateinamen mit Null-Bytes zu schreiben, dann braucht man auch noch eine Mount-Unterstuetzung fuer Linux ... und spaetestens an der Stelle wird das Null-Byte durch etwas anderes ersetzt werden (muessen), weil sonst Unix gar nicht Dateinamen, die Null-Bytes enthalten umgehen kann. Der Fall ist ferne Theorie.

Der Fall mit Single-Quotes im Dateinamen ist darum interessant, weil nicht klar ist wie die Dolphin-F4-Terminal-Anzeige den Dateinamen dann quotet. Verwendet die dann Double-Quotes statt Single-Quote, muss aber folglich dann auch andere Sonderzeichen quoten. Oder verwendet sie Backslashes, muss dann aber ebenfalls andere Sonderzeichen quoten. Oder ignoriert sie den Fall und erzeugt kaputtes Quoting. Alles moeglichkeiten. Als Entwickler waere fuer mich nicht klar welche Option davon ich waehlen wuerde. Sie erfordern einen Batzen Code fuer einen seltenen Randfall. Darum finde ich es interessant zu erfahren, *wie* die Dolphin-Entwickler sich entschieden haben.

Vielleicht kann das ja mal jemand, der Dolphin installiert hat, mal ausprobieren und meine Neugier stillen. ;-)
Use ed(1) once in a while!

wanne
Moderator
Beiträge: 6402
Registriert: 24.05.2010 12:39:42

Re: [gelöst] Was bedeuten Dateinammen im Hochkomma?

Beitrag von wanne » 02.04.2020 23:20:42

Darum finde ich es interessant zu erfahren, *wie* die Dolphin-Entwickler sich entschieden haben.
Das ist nicht die Konsole/Dophin sondern ls, dass das macht. Funktioniert sogar auf der TTY.
Und ist IMHO kaputt, dass es bash-spezifisches quoting nutzt, selbst wenn es nicht in de bash ist.
Hier die gewünschte Ausgabe:

Code: Alles auswählen

csh
ls
'a'$'\a''b'   "a'b"
Wie du siehst sind sie wohl extra vorsichtig und nutzen für alles, was man nicht mit doublequotes quoten kann alles was die bash so hergibt. Selbst in der csh wo es die $-Schreibweise nicht gibt. Aber für singlequotes nutzen sie schlicht doublequotes.
KDE selbst vertrackt es bei drag and drop in die Konsole seit KDE4. Während KDE3 noch mit dem ersten Sonderfall korrekt umgehen konnte machen sie da jetzt fälschlich ein 'ab' draus. Den 2. Fall mit dem Singlequote fangen sie korrekt mit \ ab:
'a'\''b'
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten