Dateien mit unbekannten Zeichen im Namen entfernen

  • Bin mir nicht sicher, wohin dieses Problem gehört. Bei "Sonstiges" ist es ja sicher nicht komplett falsch.


    Ich habe auf dem Notebook ein Programm, mit dem ich halbautomatisch auf das NAS sichere. Leider habe ich nicht gemerkt, dass dieses Programm in seiner neuesten Version sämtliche Dateien oder Verzeichnisse, die Sonderzeichen wie Umlaute enthalten kopiert und dabei diese Sonderzeichen ersetzt durch ein unbekanntes Zeichen. So sind bereits vorhandene Verzeichnisse doppelt. Zusätzlich zum Verzeichnis "Türkei" gibt es beispielsweise ein Verzeichnis mit dem Namen "T?rkei", wobei das Fragezeichen in Filestation in einem auf der Ecke stehenden Rechteck dargestellt wird. Ich gehe davon aus, dass das in Wirklichkeit auch kein Fragezeichen ist, sondern ein unbekanntes Zeichen repräsentiert.


    Wie kann ich das jetzt effektiv löschen? Es sind verschachtelt sicher viele Verzeichnisse und Dateien betroffen. Einfach in FileStation löschen weigert sich das System, per SSH kann ich nicht einfach per

    rm T?rkei

    löschen, dann verschwindet Türkei auch.

    rm "T?rkei"

    wiederum funktioniert auch nicht, habe ich festgestellt.


    Hat da jemand eine Idee?


    EDIT: Gerade festgestellt: In FileStation kann ich auch nicht in den Ordner wechseln und zumindest darin die Dateien löschen.

    Einmal editiert, zuletzt von duke-f ()

  • Das Fragezeichen ist kein unbekanntes Zeichen, sondern ein Zeichen, das vom System nicht dargestellt werden kann. Wenn Du ein ? selbst tippst in der Konsole, dann steht das Fragezeichen für ein beliebiges, einzelnes Zeichen.

    bevor Du dich an das Entfernen heranmachst, solltest Du rausfinden, wie Du die Erstellung dieser Doppelverzeichnisse künftig verhinderst.

    Hilfreich ist bei SMB-Freigaben die Option "nur Zugriff mit langem Dateinamen zulassen" (o.ä.)

    Unter Linux hilft auch die Option "nomapposix" beim mounten.

    Man kann sich an das Problem in der Konsole oftmals ein bisschen herantasten, indem Du beispielsweise "rm T" tippst und dann zwei mal Tab drückst - dann wird alles angezeigt, was mit T beginnt - meist sieht diese Ausgabe dann anders aus, beispielsweise mit backslashes drin, sodass eindeutiger zu identifizieren ist, wie man den T?rkei Ordner löscht.

  • Besten Dank für die Tipps. Hilft mir bestimmt weiter.


    Ich nutze für diese Synchronisation seit langem ein Programm, für das es öfters Updates gibt. Da aber zuletzt sowohl dieses Programm als auch QTS auf dem NAS und Windows10 sowieso ständig aktualisiert wurde, muss sich an einer Stelle etwas bezüglich der Zeichenkodierung verstellt haben. Bisher hatte ich das Problem lange Zeit nicht - kann mich aber dunkel erinnern, dass es vor Jahren schon mal auftrat. Normal bemühe ich mich, in Verzeichnis- und Dateinamen ohne Sonderzeichen auszukommen. Geht aber nicht immer. Wo sich jetzt etwas verstellt hat muss ich selber recherchieren, das ist soweit klar


    Kurz und gut, die Ursache des Konflikts liegt sicher in der Kodierung begründet. Das muss ich auf jeden Fall erst checken, vor ich die nächste Sicherungsaktion starte. Dass das ? gar kein solches ist, war mir eigentlich schon klar, daher die unterschiedliche Darstellung, je nach Zugang (WI oder Console). Schwierig ist halt auch mein etwas komplexeres Sicherungssystem: Sicherung vom Notebook mit diesem Tool, anschließend Sicherung ausgewählter Teile im Onlinespeicher per WebDAV. Und genau letzteres hat mich heute morgen mit Fehlermeldungen erschlagen, weil er mit diesen Sonderzeichen nicht klar kam.


    Problem ist im Moment: Wie bekomme ich die störenden Verzeichnisse/Dateien gelöscht. Mal sehen, ob der Tipp mit zweifachem Tab hilft, das ist mir neu.


    Ich versuche jetzt folgenden Weg, diese "Leichen" zu entfernen: Ich kopiere die kompletten Verzeichnisse auf ein externen Laufwerk. Das scheint QTS in FileStation zu tun - enfach Löschen hingegen nicht. Auf dem externen Laufwerk wird das fehlende "ü" dargestellt als %FC (Hinweis auf die Kodierung....). Zum Glück handelt es sich zwar um eine Vielzahl an Dateien in den Verzeichnissen, aber direkt betroffen sind zumeist die Verzeichnisnamen. Dann versuche ich - wenn das zweifach Tab nicht weiter hilft - nochmal, komplett zu löschen, also "T?rkei" und damit eben auch "Türkei", und hole mir letzteres von Extern wieder zurück.


    Btw: "Türkei" ist selbstverständlich nur stellvertretend.


    sawachika: Meinst Du wirklich "rm T" und doppelter Tab oder "ls T" und doppelter Tab? Bei ersterem fürchte ich, es wird alles gelöscht. Beim zweiten zeigt mir mein System auf der Konsole auch die Darstellung des nicht bekannten "Ü" als Fragezeichen in der Raute, wie in FileStation. Dieses komplett kopieren in den rm-Befehl führt leider nicht zum Ziel.

  • Wie der Doc schon schrieb, prüfe die Zeichensatzeinstellung auf dem NAS. Die findest du in der Systemsteuerung irgendwo unter Allgemein. Dort ist manchmal Englisch eingestellt und damit können Umlaute natürlich nicht wiedergegeben werden. Stelle dort Europäisch (ich glaube zumindest, dass es so hiess) ein.


    Diese Einstellung ist normalerweise nur für die Anzeige relevant, Dateinamen werden normalerweise als Unicode gespeichert.

  • Besten Dank, also muss ich in den Einstellungen des NAS suchen. Ich dachte, das Filecopy-Tool ist der Übeltäter.

    Du hast Recht, da war "englisch". Jetzt habe ich "Westeuropäisch/Latein 1" eingestellt. Probieren kann ich erst heute Abend, weil ich erst zuhause wieder an mein Notebook komme.


    EDIT: Das mag jetzt zwar von der Sache her richtig gewesen zu sein, ist aber doch nicht mein eigentliches Problem, denke ich. Schließlich ist die Darstellung von Umlauten in FileStation ja durchaus möglich, wenn auch Englisch statt Westeuropäisch eingestellt ist. Das zeigt sich ja auch daran, dass das Verzeichnis "Türkei" neben dem neuen Verzeichnis "T?rkei" vorhanden ist und genau so - also mit "ü" - geschrieben wird. Und beim Löschen der ungewünschten Verzeichnisse hilft mir das auch nicht, muss ich feststellen.

    Habe jetzt einen Weg gefunden, wie ich die Verzeichnisse umbennenen und dann diese umbenannten Verzeichnisse ganz normal über die Console löschen kann mittels rm -r. Bestimmt gibt es auch andere Methoden, aber dieser Weg hat bei mir funktioniert.


    1. Per
      ls > listing
      im Verzeichnis, in dem das problematische Unterverzeichnis liegt, bekomme ich in meinem Beispiel jetzt das Problemverzeichnis mit einem Punkt statt dem Fragezeichen oder dem korrekten Buchstaben (ü) oder %FC in das File "listing" geschrieben.
    2. im File "listing" lösche ich alles außer dem/den Namen der/des Problemverzeichnis(sen) und setze davor "mv". Alles ohne Anführungszeichen, versteht sich, Wobei aber andere Sonderzeichen wie beispielsweise Leerzeich in den Namen doch wiederum durch Anführungszeichen erfasst werden müssen. Dabei aber: Finger weg von diesem Punkt, der das unbekannte Zeichen ersetzt. Dahinter kommt der neue Name. Also bei meinem Beispiel sah es so aus (zugegeben, den Zusatz "[blank]2009" habe ich bisher verschwiegen):
      mv "T.rkei 2009" Tuerkei2009
    3. Das File "listing" wird ausführbar gemacht
      chmof +x listing
      und ausgeführt
      ./listing
      und damit heißt das Problemverzeichnis - das jetzt gar kein Problem mehr ist "Tuerkei2009" und kann wie gesagt einfach gelöscht werden.

    Klar, den Schritt "umbenennen" kann man unterlassen und direkt das Löschen ausführen. Unterläuft dann aber ein Fehler, ist eventuell alles andere auch weg. Daher habe ich im Testfall auch sicherheitshalber das Verzeichnis mit dem richtigen "ü" im Namen, das ich behalten will, vorher gesichert.


    EDIT:

    Nach wie vor, wo die Dateien her kommen, kann ich noch nicht nachvollziehen, es liegt wohl doch am Abgleich mit dem Webspace per WebDAV. Ist aber nicht Thema dieses Threads, ggf. mache ich da etwas eigenes auf.

    Aber zum obigen Vorgehen habe ich noch eine Ergänzung. Alle so entstandenen Files und Verzeichnisse haben als User und als Group die Angabe 4294967294, was meinen Kenntnissen zufolge heißt, sie sind weder einer Gruppe noch einem User zugeordnet. Daher lassen sich die Problemfälle auch finden und in einer Date listen mit dem Befehl

    find -nouser >auswahl

    Diese Datei ist wieder wie oben zu bearbeiten. Da es sich diesmal bei mir um doch recht viele Einzelfiles handelte, habe ich direkt mit rm die Files gelöscht statt sie erst umzubenennen. Klar, wieder erst nach vorangehender Kontrolle der Sicherung.

    2 Mal editiert, zuletzt von duke-f ()