arrg.... Wie kann ich in der bash auf einen dateinamen zurgreifen der mit 'nem minus beginnt? Alle tools denken, es kommt 'ne option. Steh grad voll auf dem Schlauch... -- main($)??<-$<='?'>>2?main($-!!putchar( (("$;99M?GD??(??/x0d??/a:???;a"+'?'/4) ??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
könnte man sie theoretisch kopieren, das ist aber unwitzig bei 800mb großen dateien -- main($)??<-$<='?'>>2?main($-!!putchar( (("$;99M?GD??(??/x0d??/a:???;a"+'?'/4) ??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
es ist zum verrückt werden... ich werd mir jetzt gepatchte coreutils kompilieren. ich ärger mich bloß jetzt schon, weil bestimmt morgen jemand eine ganz simple lösung postet... -- main($)??<-$<='?'>>2?main($-!!putchar( (("$;99M?GD??(??/x0d??/a:???;a"+'?'/4) ??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
nöp. escapen kannst du soviel du willst, das löst alles die bash auf... das selbe mit wildcards... naja, hab' das problem wie gesagt schon anderweitig gelöst, aber kannst das ja in die rätselecke verschieben wobei ich fast glaube, dass es mit coreutils einfach nicht möglich ist... -- main($)??<-$<='?'>>2?main($-!!putchar( (("$;99M?GD??(??/x0d??/a:???;a"+'?'/4) ??($??)+'?'/3-2-1+$%2)??''?')):'?';??>Dieser Post wurde am 04.03.2006 um 14:05 Uhr von kronos editiert.
Das hat meiner Meinung nach gar nichts damit zu tun. Das setzen in "" gibt nur an, dass es sich um ein Argument handelt. Damit kann man zum Beispiel Dateinamen mit Leerzeichen angeben.
Im Programm kommt ja immer nur die liste der Argumente an. Und da ist nicht mehr zu unterscheiden, ob das Argument mit "" eingegeben wurde oder nicht. Oder vielleicht mit Escapezeichen. (Die Escapezeichen sehe ich doch im Prog nicht mehr?) Was ich meine ist, dass die Bash diese Auswertung macht. Das Programm erhält das Argument als c-String und fertig. Und wenn das dann eben mit Minus anfängt wird von einem Argument ausgegangen.Dieser Post wurde am 04.03.2006 um 14:17 Uhr von Pler editiert.
Ich finde ausserdem, dass das mit den - und -- eine Konvention ist, an die man sich halten sollte. Demzufolge sollte es einfach keine Dateinamen die damit anfangen geben. Es kommt ja auch niemand auf die Idee ein * oder ? in ein Dateinamen zu schreiben. (Wobei das noch relativ einfach zu umgehen ist.)
Hallo, bin gerade zufällig auf folgendes gestoßen: www.linuxfibel.de/file+dir.htm#rm (siehe Text um den 3. Kasten in diesem Abschnitt herum)
Zitat von Linuxfibel:
Beginnt ein Dateiname mit einem Minus, würde rm dieses als Option betrachten und vermutlich mit einer Fehlermeldung den Dienst quittieren. Dem Kommando muss in solchen Fällen explizit das Ende der Optionen bekannt gegeben werden, indem zwei Minus die Liste der Dateinamen einleiten [...] Das im letzten Absatz beschriebene Problem mit den Dateinamen kann bei fast allen Kommandos wie beschrieben gelöst werden.
Scheint zu funktionieren. -- Gruß predator
Zitat von Edsger W. Dijkstra:
Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.
We've got a winner! (damn, das hatte ich auch schon mal irgendwo gelesen... ) -- main($)??<-$<='?'>>2?main($-!!putchar( (("$;99M?GD??(??/x0d??/a:???;a"+'?'/4) ??($??)+'?'/3-2-1+$%2)??''?')):'?';??>