Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » dateinamen die mit - anfangen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
04.03.2006, 03:25 Uhr
kronos
Quotenfisch
(Operator)


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)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.03.2006, 03:28 Uhr
kronos
Quotenfisch
(Operator)


Okay, mit
Code:
cat > gescheiter_name < -beknackter_name_der_mit_minus_anfängt
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)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.03.2006, 03:48 Uhr
kronos
Quotenfisch
(Operator)


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)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.03.2006, 09:48 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


meist funktionierts wenn du sowas machst:

foo "-beknackter_name_der_mit_minus_anfängt"

oder evtl funktioniert auch

foo \-beknackter_name_der_mit_minus_anfängt
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.03.2006, 14:02 Uhr
kronos
Quotenfisch
(Operator)


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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.03.2006, 14:15 Uhr
Pler
Einer von Vielen
(Operator)



Zitat:

meist funktionierts wenn du sowas machst:

foo "-beknackter_name_der_mit_minus_anfängt"



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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
04.03.2006, 16:34 Uhr
Pler
Einer von Vielen
(Operator)


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.)

Advanced Linux Programming - Writting Good GNU/Linux Software

Meckert eigentlich auch cat? Wenn ja schreibs dir schnell selber.
zB

perl:

$ perl -e 'while(<>){print;}'



Dann cat -datei | programm

(Dann musst in deinem Programm nur noch dein filedeskriptor auf stdin legen.

Dieser Post wurde am 04.03.2006 um 16:34 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
04.03.2006, 19:13 Uhr
predator



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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
04.03.2006, 20:03 Uhr
kronos
Quotenfisch
(Operator)


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)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
04.03.2006, 22:14 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


verdammt klar, das ging ja auch. oh man
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: