gestern habe ich eine Datei umbenannt, etwa so:
Code: Alles auswählen
mv henry.tex henry's.tex
Aber was habe ich da gemacht? Was löst denn so ein Hochkomma im Dateinamen aus?
Gruss
henry
Code: Alles auswählen
mv henry.tex henry's.tex
Code: Alles auswählen
mv henry.tex henry\'s.tex
Spasswolf hat geschrieben:Das ' scheint ein Shellkommando zu sein.
Also das mit dem Backslash stimmt ersteinmal. Das ' ist aber kein Shellkommando, es hat einfach eine besondere Bedeutung unter Unix. Begriffe bzw Befehle die innerhalb von zwei ' stehen, werden als String behandelt (und im Fall eines Befehles, nicht ausgeführt). Wenn man ein nicht mit Backslash entwertetes ' verwendet, erwartet das Betriebssystem einfach ein zweites ', welches das Ende des Strings kennzeichnet. Weiter ist das nichts. Vllt ein kleines Beispiel:Spasswolf hat geschrieben: Wenn du ein Dateinamen mit Hochkomma haben willst musst du einen Backslash vor dem Hochkomma setzen:Das ' scheint ein Shellkommando zu sein.Code: Alles auswählen
mv henry.tex henry\'s.tex
Code: Alles auswählen
export BLA=fasel
[bodo99@bonecrusher bodo99]$ export BLA=fasel
[bodo99@bonecrusher bodo99]$ echo $BLA
fasel
[bodo99@bonecrusher bodo99]$ echo "$BLA"
fasel
[bodo99@bonecrusher bodo99]$ echo '$BLA'
$BLA
Ja, und da ich das innerhalb Xemacs gemacht habe, wurde da ein Prozess aufgemacht, den ich dann unachtsam gekillt habe. Damit war die Datei weg. Wenn ich das auf der Konsole gemacht hätte, hätte ich gesehen, dass da die Shell auf etwas wartet.Wüdest Du beim letzten Beispiel das schließende Hochkomme weglassen, wird eine neue Zeile geöffnet und die Shell wartet so lang, bis man das schließende Hochkomma eingibt.