Dateinamen für Linux mit Leerzeichen: Kann mir jemand helfen?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du musst das Leerzeichen escapen, da er es sonst nicht versteht. Escaping geschieht landläufig per \, also dem Backslash. Du musst also Eigene\ Dateien eingeben.

Danke :-) Super qualifizierte Antwort....

LA

0
@Linuxaffiner

Den Verzeichnisnamen und/oder Pfad in Anführungszeichen setzen funktioniert auch:

cd "Eigene Dateien"

Das ist ja eigentlich auch logisch. Das hat nichts mit der Verarbeitung der Verzeichnisnamen zu tun, sondern mit der Befehlsverarbeitung der Shell. Woher soll die Shell denn wissen, dass das zweite Wort noch zum Namen gehört und nicht ein zusätzliches Argument für den Befehl "cd" ist?

3
@Linuxaffiner

Das so genannte escapen tut nichts anderes als dem Interpreter (in dem Fall, der Bash, zu sagen dass das Zeichen das nach dem Backslash kommt als solches zu sehen ist, also "Ein Leerzeichen ist ein Leerzeichen"


Selbiges gilt ja auch in anderen Programmen oder sogar hier in gutefrage.net, wo man ein C:\ nur darstellen kann wenn man zwei Backslashes verwendet. Oder auch beim anlegen eines Verzeichnisses mit dem Namen:

mkdir C:\

erwartet die Eingabe eines Leerzeichens um das Kommando abzuschließen.

Die Eingabe von:

mkdir C:\ #

Genau da ist ein Leerzeichen nach dem \ und so wird dann ein Verzeichnisname mit Leerzeichen erstellt, deswegen muß man es so schreiben:

mkdir C:\\

Andernfalls sieht das dann so aus:

linuxhase@openSUSE-Desk:~> # ls -lQ|head -44|tail -2
drwxr-xr-x  2 root  root        4096  3. Sep 15:08 "C:"
drwxr-xr-x  2 root  root        4096  3. Sep 15:08 "C: "

Linuxhase

0

Microsoft hat hier wieder einmal den lange vor dem ersten Microsoft-Betriebssystem benutzen "quasi-Standard" ignoriert und seine eigenen Regeln geschaffen. Das betrifft u.a. das Leerzeichen, den Tabulator und auch den Backslash.

Jeder Benutzer und noch viel mehr der Programmierer kann hier schon Wutanfälle bekommen, wenn er einen Code für Linux und Windows benutzen will (muss).

Ein Leerzeichen hat in Unix-/Linux-Systemen die Bedeutung eines Trennzeichens zwischen Namen, also z.B. zwischen Befehlen und Parametern oder zwischen Parametern. So wird ein

cp meine_datei  ziel 

als Befehl Kopiere die Datei "meine_datei" nach "ziel" interpretiert.

cp meine datei ziel 

kann so nicht funktionieren. Man muss also sagen, dass "meine datei" als Ganzes ein Element ist. Dafür gibt es 2 Möglichkeiten. Entweder man "entzieht dem Leerzeichen die Bedeutung Trennzeichen indem man einen Backslash vor das betreffende Leerzeichen setzt oder man setzt das betreffende Element in Hochkomma.

Da der \ bei Windows aber das Trennzeichen für Verzeichnisse ist gibt es da Probleme. Ähnlich kann es mit dem Hochkomma sein.

Um das zu umgehen, sollte man (falls man häufig Dateien zwischen Windows und Linux austauscht ) sich angewöhnen keine Leerzeichen oder Tabulatoren in Namen zu verwenden. Mit der Verwendung des _ kann man genauso (und besser) die Übersichtlichkeit erhalten. So eine Schreibweise versteht dann sogar Windows.

Hallo

Kann das sein dass Linux Dateinamen die mit Leerzeichen versehen, sind nicht richtig verarbeiten kann?

Jaein

Man kann jetzt nicht pauschal sagen das GNU/Linux Systeme das nicht könnten, sondern es kommt auf die bearbeitende Software an.

dann kann ich mit cd Eigene Dateien nicht in das Verzeichnis wechseln.

Beispiel:

linuxhase@openSUSE-Desk:~> mkdir "Eigene Dateien"
linuxhase@openSUSE-Desk:~> cd Eigene\ Dateien/
linuxhase@openSUSE-Desk:~/Eigene Dateien> cd ..
linuxhase@openSUSE-Desk:~> cd "Eigene Dateien"
linuxhase@openSUSE-Desk:~/Eigene Dateien>

Ich kann diesen Ordner, bzw. diese Datei auch nicht in eine andere Hierarchieebene verschieben.

linuxhase@openSUSE-Desk:~> mkdir linuxaffiner
linuxhase@openSUSE-Desk:~> mv Eigene\ Dateien/ linuxaffiner
linuxhase@openSUSE-Desk:~> ls -r1 linuxaffiner
linuxhase@openSUSE-Desk:~> Eigene Dateien

Es geht schon, wenn man die Dateinamen in Quote Zeichen steckt oder die Leerzeichen (ebenso wie auch Sonderzeichen) escapen tut, das machen die Backslashes.

Aber wenn ich in der Konsole solche Sachen zu machen habe, dann verwende ich da den Mindight Commander Dateiname: mc

Oder man baut ein Script und erstellt dafür einen Alias-Befehl mit dem man dieses aufruft.

Bei Windows ist das in der Eingabeaufforderung genauso.

Linuxhase

Ubuntu (Linux): Installation von Programmen nicht möglich?

Hallo! Ich wollte mir vor kurzem den Brackets-Editor installieren, aber ich kann nicht. Wenn ich die Datei öffne und auf installieren klicke, erscheint im Starter ein Symbol mit Fragezeichen und wenn man drauf klickt steht da "Installation abwartend".

Ich habe schon alles versucht: apt-get update, upgrade, neustarten, Datei neu herunterladen, Speicher überprüfen... Es funktioniert nichts!

Ich benutze Ubuntu 16.04 und bitte hiermit um Hilfe!

LG, Philipp

...zur Frage

Linux ~/.Private/ Ordner löschen?

Hey, Das ich unter Linux Mint 16 im verzeichnis /home/emu/.Private/ die beinhaltete Dateien löschen ohne das mein System beschädigt wird?

...zur Frage

Eigene GUI für Linux programmieren

Hallo, kann man eine eigene GUI für Linux programmieren? Also mit X11 Die GUI soll dann z.B. KDE ersetzen?

LG

...zur Frage

Kann man von Linux Ubuntu zur Linux Mint ersetzen?

Hallo.

Also, sagen wir mal so. Ich habe mir Ubuntu Installiert, und man sich entschluss überlegt auf Mint zu Wechseln. Nur da man keine lust hat noch mal erneut zu Installieren, wollte ich fragen ob es unter Ubuntu möglich ist per Commando Console von Ubuntu zur Linux Mint zu ersetzen und zwar so das die Installierte Programme und Dateien bleiben.

...zur Frage

Wie gebe ich einer datei im webserver berechtigungen über eine anderes Verzeichnis auf Linux(Debain 8)?

Ich habe auf meinem VServer(Debian8) owncloud installiert. Owncloud habe ich in /var/www/html/owncloud installiert. Allerdings habe ich den Pfad für das Verzeichnis zum Speichern von hochgeladenen Dateien wie Photos und Dokumente unter /media/owncloud/data gelegt damit auf die Dateien nicht durch den Webbrowser zugegriffen werden kann. Allerdings hatt owncloud nun keine Berechtigung über den Speicherpfad mehr. Wie gebe ich owncloud nun die Rechte über diesen Speicherpfad?

...zur Frage

Was möchtest Du wissen?