rm vs. del

  • wenn ich doch mal win boote, dann geb ich bei der eingabeaufforderung immer ls statt dir, rm satt del,.. ein (denke ihr kennt das problem). also hab ich mir ein paar *.bat dateien geschrieben, die die eingabe auf dos-kommandos umwandeln. da ist mir folgendes aufgefallen:
    wenn ich folgende dateine anlege:
    fuckms.foo, fuckms.bar fuckms.txtt (txtt ist gewollt)
    und dann del *.??? mache, dann ist auch die *.txtt weg!
    bei rm *.??? unter linux werden natürlich nur die ersten 2 dateien gelöscht.
    hat da irgenwer eine erklärung oder ist das ein extrem-win-bug?

    sollte jemand die *.bat brauchen können:
    http://stud4.tuwien.ac.at/~e0125555/unixtools.html

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • Zitat von Kampi

    wenn ich doch mal win boote, dann geb ich bei der eingabeaufforderung immer ls statt dir, rm satt del,.. ein (denke ihr kennt das problem).

    Wieso installierst Du nicht einfach Cygwin?

  • Zitat von Jensi

    Wieso installierst Du nicht einfach Cygwin?


    1. is mir a bissl zu viel des guten. wenn ich wirklich so viel linux brauch, dann boote ich gleich linux, denn parallel brauch ich win/lin eh nicht.
    2. hab die batch-files eh nur aus lauter verzweiflung geschrieben, damit ich zwar was "sinnvolles" tue, aber nicht übersetzerbau lernen muss

    Alex_K: und welches zeichen steht dann für "genau ein vorkommnis eines zeichens"?

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • auf welchem Dateisystem und welcher Eingabeaufforderung (da gibts ja die "alte" und die "neue") spielt sich das Ganze eigentlich ab?

    Why bother spending time reading up on things? Everybody's an authority, in a free land.

  • Zitat von jeuneS2

    auf welchem Dateisystem und welcher Eingabeaufforderung (da gibts ja die "alte" und die "neue") spielt sich das Ganze eigentlich ab?

    winxp/sp1 ntfs
    aber ich fürchte, das ist wirklich so gewollt. ist für leute die die "linux-notation" kennen a bissl gefährlich...

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • Zitat von Kampi

    winxp/sp1 ntfs
    aber ich fürchte, das ist wirklich so gewollt. ist für leute die die "linux-notation" kennen a bissl gefährlich...


    Hardcore Windows Nutzer schwören deshalb auf ein graphisches Tool namens Explorer und verpönen die Windows "Shell".

  • Zitat von Kampi

    fuckms.foo, fuckms.bar fuckms.txtt (txtt ist gewollt)
    und dann del *.??? mache, dann ist auch die *.txtt weg!
    bei rm *.??? unter linux werden natürlich nur die ersten 2 dateien gelöscht.
    hat da irgenwer eine erklärung oder ist das ein extrem-win-bug?

    Kann es sein, dass unter Windoof nach wie vor nur 3 Zeichen nach dem Punkt sein dürfen und damit deine txtt datei eigentlich als txt abgespeichert wird und nur ein mapping auf txtt gibt.

    Mit dem Shell programm greifst du aber direkt auf die Datei zu und löscht sie damit richtig.

    Ist aber nur eine Vermutung.
    lg
    P2K
    ESC:x

    ESC :x

  • nein, die 8+3 beschränkung gibts bei ntfs nicht. lediglich zur kompatibilität zu älteren (16 bit) programmen, wird eine (unsichtbare) 8.3 "verknüpfung" auch angelegt. wenn die cmd-shell nun keine entsprechung von ??? für einen 3 zeichen langen ntfs-datei-teilstring findet, das sie u.U. auch die 8+3 namen durchsucht und fröhlich löscht.

    diese 8+3 funktion ist allerdings abschaltbar: HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation

  • Zitat von p2k


    Mit dem Shell programm greifst du aber direkt auf die Datei zu und löscht sie damit richtig.


    aber auch nur wenn ich die dateien einzeln angebe. del funktioniert eh auch, wenn ich die dateine als argumente übergebe. das problem ist ziemlich sicher, dass unter win/dos "?" nicht als "genau ein vorkommnis" interpretiert wird. andererseits wenn die 2 dateien: testXtest.txt testXXtest.txt vorhanden sind und ich:
    del test?test.txt mache, dann funktioniert das so wie man es sich vorstellt, er löscht nur testXtest.txt
    ich werd nicht schlau draus.

    Willfähriges Mitglied des Fefe-Zeitbinder-Botnets und der Open Source Tea Party.

  • "?" wird sehr wohl als ein (1) vorkommnis interpretiert

    um's deutlicher zu sagen: fuckms.txtt wird auch als fuckms~1.txt gespeichert. del *.??? hat zwar für's erste keine entsprechung aber für's zweite schon.

    und ob man etwas auf der cmd-shell löscht oder im explorer ist egal, keines greift "direkter" auf eine datei zu, beide sind gleichwertig.

  • Zitat von Dave2003


    und ob man etwas auf der cmd-shell löscht oder im explorer ist egal, keines greift "direkter" auf eine datei zu, beide sind gleichwertig.

    Wirklich ? Geht es auch, dass das del (unter win) auf der Kommandozeile den Umweg über den Papierkorb nimmt (um Frustration zu vermeiden) ?
    Das wäre auch unter Linux nicht uninteressant (so ein rm * kann manchmal ziehmlich schmerzen), allerdings ist es eh einfach machbar. (Nur es macht einfach keiner, weil es ja eigentlich "nicht wirklich notwendig" ist )

    Interessantere Frage: Ich greife unter Linux auf Windows FAT32-Partitionen zu, und hab da einige Probleme wegen der Case-Insenstivity (z.B. mit den autotools). Die files und verzeichnisse kann man nicht irgendwie strikt case-sensitive machen, oder ?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!