Ordner und Dateien mit einem : im Namen werden auf meinem Mac und bei meinem Blusound - Player nicht korrekt angezeigt bzw. überhaupt nicht angezeigt

  • Probiere gerade per SSH die : loszuwerden mit dem Befehl von weiter oben. Leider bricht es permanent ab und ich muss es dann doch manuell machen. Backup habe ich.

    Fehlermeldung wäre hier gut, oder wird es kommentarlos abgebrochen?:/


    Die Metainformationen sind sauber bearbeitet und daraus werden die Dateinamen erstellt. Und damit habe ich nun ein Problem.

    Daher kommt das... :/ D.h. jedesmal wenn neue Datei erstellt wird, prüfen und ggfs. umbenennen. Ist sicherlich nervig.

  • Ein Beispiel:


  • Anthracite

    Ist die Codezeile auf einem Linux- oder Mac-Gerät entstanden / getestet? Die Linux- und die Mac-Konsole scheinen sich an manchen Stellen zu unterscheiden. Bei einigen meiner Scripts musste ich für Mac Anpassungen vornehmen.

  • Tranel : Steht in Deiner Befehl ganz am Anfang tatsächlich so drin? Also <ind?


    Falls ja, ist es falsch, richtig müsste er find heissen.


    Und wie schon vorgeschlagen, am Ende den | sh weglassen. Das bewirkt, daß der Befehl nicht echt läuft, sondern nur Ausgabe ausspuckt damit Du das kontrollieren kannst. Das nennt sich Dry-Run.

  • Dry run habe ich gemacht.

    Hat das funktioniert? Wenn ja, kannst du die komplette Ausgabe in einen Editor kopieren und "stückchenweise" zurückkopieren. Dann siehst du besser, wenn ein Kommando nicht funktioniert. Ein solches kannst du posten, dann kann ich den Befehl anpassen.


    Ich habe bei meinem oben gegebenen Befehl nicht alle möglichen Zeichen behandelt. Bei Anführungszeichen " im Dateinamen fällt der z. B. auf die Nase.

  • Bislang habe ich nur 2 Sonderzeichen gefunden, die Probleme machen. Der Doppelpunkt und das Fragezeichen. Hoffe, dass ich bald alles korrigiert habe. Wobei es sich nicht gut anfühlt, etwas sinnvolles zu verschlimmbessern.


    Anthracite: Jetzt habe ich noch knapp 650 Dateien mit einem Fragezeichen. Wollte Deinen Befehl nutzen und habe die beiden Doppelpunkte jeweils durch ein ? ersetzt. Leider bekomme ich dann sofort nur Fehlermeldungen. Anscheinend sind die Dinge nicht so einfach, wie ich es gerne hätte. Kannst Du mir noch einmal helfen?

    Einmal editiert, zuletzt von Tranel ()

  • Tranel


    So einfach ist das nicht. Das Fragezeichen wird sowohl von find als auch vom gsub im awk-Programm als Joker für ein beliebiges anderes Zeichen interpretiert. In beiden Fällen muss es mit Backslash von dieser Sonderbedeutung befreit werden. Und damit dies nicht zu einfach ist, braucht es einmal nur einen Backslash, einmal aber deren zwei.


    Das ergibt dann dieses Kommando:


    Code
     find . -name "*\?*" | awk '{gsub(" ", "\\ ", $0);s=$0; gsub("\\?", "_", s);print "mv "$0" "s}' | sh
  • Danke. Als einfacher Mac-Nutzer gab es in 10 Jahren nie einen Grund für mich, sowas zu lernen. Vielleicht sollte ich mich mal damit beschäftigen. Gibt es da eine gute Quelle?


    Wie auch immer. Der Befehl findet zwar die ?, kann aber die Dateien nicht korrigieren. Ich denke, dass der Befehl mit Leerzeichen in Ordner oder Dateien nicht klar kommt. Beispiel:

    Code
    Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY
    
    
    -f	Don't prompt before overwriting
    -i	Interactive, prompt before overwrite
    -n	Don't overwrite an existing file
    sh: line 6: syntax error near unexpected token `('
    sh: line 6: `mv ./Implant/Fading\ Away/05\ -\ Was\ It\ Always\ This\ Way?\ (Leaether\ Strip\ mix).m4a ./Implant/Fading\ Away/05\ -\ Was\ It\ Always\ This\ Way_\ (Leaether\ Strip\ mix).m4a'
  • Wie ist das bei dir eingestellt?

    pasted-from-clipboard.png


    Wenn die Codierung nicht passt, kommt es gern zu den von dir beschriebenen Effekten.

    Kann sein das Syno das bei der Spreche und Regionseinstellung automatisch setzt.

  • Das Problem ist nicht die Kodierung. Das Problem sind die runden Klammern, an denen sich die Shell stört. Die kann man wie das Leerzeichen durch ein gsub mit doppeltem Backslash versehen, dann geht es. Ich sitze gerade nicht an einem geeigneten Rechner. Heute Abend oder morgen früh kann ich das mal selbst ausprobieren und das Statement erweitern.


    Edit von Montag Mittag:

    Hier ist die Version, die auch mit runden Klammern klar kommt und bei deiner obigen Datei funktionieren sollte:

    Code
    find . -name "*\?*" | awk '{gsub(" ", "\\ ", $0);gsub("\\(", "\\(", $0);gsub("\\)", "\\)", $0);s=$0; gsub("\\?", "_", s);print "mv "$0" "s}'

    Mit anderen Sonderzeichen im Dateinamen gibt es aber weiterhin Probleme.


    Nochmal Edit:

    So, jetzt habe ich noch eine Version des Kommandos, die mit sämtlichen Steuerzeichen der Bash (oder einer anderen Shell) klar kommt, indem die Dateinamen alle mit einfachen Hochkommas eingeschlossen werden.


    Das Problem an der Lösung (weswegen ich sie normalerweise auch meide, ist halt umständlich einzutippen) ist, dass ein Hochkomma im Argument von awk die das Argument umschließenden Hochkommas durcheinanderbringt, weswegen ein Hochkomma als '\'' zu schreiben ist. Und das gilt nicht nur für den awk-Aufruf, sondern auch für das erzeugte mv-Kommando, womit sich die Unlesbarkeit verdoppelt. Freunde des Backslashs hingegen werden ihren Spaß dran haben.

    Code
    find . -name "*\?*" | awk '{gsub("'\''", "'\'\\\\\'\''", $0);s=$0; gsub("\\?", "_", s);print "mv '\''"$0"'\'' '\''"s"'\''"}' | sh

    Wie gehabt mit Copy-Paste einfügen, und eventuell einmal "trocken" ohne abschließendes | sh aufrufen.



    P. S.: Wenn du Doku dazu willst: Die zu Shell oder Bash für Linux/Unix ist auch gut. Die Unterschiede zum Mac beschränken sich oft auf ein paar Parameter von Befehlen.

  • Danke. Das hat schon mal geklappt. Mein T778 erkennt nun alle Dateien und der Pfad ist auch korrekt. Nun mal schauen, was der Mac sagt.


    Ich werden jetzt, wo ich ein QNAP habe, wohl wirklich mal in die Welt von Shell/Bash eintauchen müssen.

  • Auch Syno hat eine Shell / Terminal. QNAP Ist ebenso Linux wie Syno. Da nehmen sich die beiden nichts. Mit Terminalbefehlen kann man eben ganz individuelle Arbeitsabläufe ausführen, was manchmal mit keinem Programm so möglich ist.


    Für ganze Scripts siehe dazu auch den Downloadbereich des Forums.

  • Ja, haben sie. Aber es gab nie den Bedarf es zu nutzen. Ich muss auch noch viele Dinge probieren, denn manches kann noch nicht passen. Im Moment sind die Transferraten schlechter als bei dem Synology von 2015, was nicht sein kann. Das NAS ist am 2.5 GBit/s-Port an meinem Router und eigentlich sollte es massiv schneller sein. Aber ich werde es noch herausfinden.


    Zum Thema Sonderzeichen: ? und " und > und > und Punkte am Ende eines Dateinamens machen Probleme. Wahrscheinlich aber noch weitere, die ich nicht genutzt habe. Habe nun alles korrigiert und werde in Zukunft darauf achten. Der Komfort leidet aber massiv zu früher.

  • Du hast aber nicht Jumbo Frames eingeschaltet?

    Das geht nur wenn die ganze kette das unterstützt und ausschließlich im LAN, sobald WLAN ins Spiel kommt ist das wieder ein Problem.


    Ist nur ein Switch dazwischen, der keine Jumbos kann, wird Fragmentiert und dann geht es massiv runter mit der Performance.


    Also noch mal zur Sicherheit die MTU kontrollieren, hier muss 1500 eingestellt sein.

  • Nein. MTU ist 1500. Das NAS hängt am 2.5 GBit/s-Port des Routers und mein MacBook Pro ist per 5 GHz-WLAN mit dem Router verbunden.