Kann Datei nicht löschen!

  • Zwischen bash und zsh gibt es nur wenige Änderungen, jedoch ohne Einstellung kann es schon zu Zugriffs-Rechte-Problemen kommen, wenn der aktuelle Benutzer diesbezüglich nicht

    Irgendwo muss diese App ja eine Beziehung haben, wenn noch immer angezeigt wird, dass sie in Verwendung ist, nvram oder in der App selbst gespeichert oder sonst wo.

    Sollte nicht...


    und manchmal braucht es nur nen Trigger:

    Code
    1. maulwurf@MBpro16 ~ % fuser -u ../../Applications/Safari.app/Contents/MacOS/Safari
    2. ../../Applications/Safari.app/Contents/MacOS/Safari: 1402(maulwurf) 1511(maulwurf)

    So findet man raus, welcher User da seine Finger im Spiel hat ;)

    Achja, bei macOS wohl so, daß ohne "-u" die PIDs gelistet werden - dann sieht man auch, welcher Prozess das gestartet hat...

    Bye

    Stefan


  • Danke für all die Hinweise! Ich geh denen demnächst nach und melde mich mit einem Bericht, sobald ich Zeit hab.... ;)

  • Moin Leute!

    Ich habe jetzt alle vorangegangenen Vorschläge ausprobiert und bin sogar im Papierkorb in die Datei reingegangen. Ohne Erfolg. Hier mal meine Terminalausbeute. Wenn ihr einen Fehler entdecken könnt, gerne raus damit. Ansonsten will er weiterhin das Ding nicht löschen!


    Danke euch und einen guten Rusch!

  • Mal ne ganz platte Idee:


    Code
    1. sudo mv /Users/hal9000/.Trash/Install\ macOS\ Catalina.app /Users/hal9000/.Trash/Bla
    2. sudo rm -rf /Users/hal9000/.Trash/Bla

    Falls sich das System an dem Namen festgebissen hat könnte das u.U. helfen. Ansonsten wie schon erwähnt wurde ins Recovery booten. Damit sollte es dann auf jeden Fall gehen.


    Klappt das auch nicht, hat evtl. das APFS Volume einen hau weg?


    Edit:

    Oder

    Code
    1. sudo mv /Users/hal9000/.Trash/Install\ macOS\ Catalina.app /private/tmp/


    und dann die Kiste neustarten. Der tmp Ordner wird bei jedem Neustart geleert.

  • Terminal öffnen

    Eins vorweg. Bisher gab es vereinzelt schon gute Lösungsansätze. Leider nicht ganz vollständig.

    Weitere Möglichkeit.


    Der Befehl "chflags -R nouchg" bewirkt, dass das Flag für unveränderliche Dateien durch den Benutzer deaktiviert wird.

    Dadurch wird die Datei freigegeben und lässt sich löschen.


    Terminal starten


    zum Papierkorb springen cd ~/.Trash

    Flag deaktivieren sudo chflags -R nouchg Install\ macOS\ Catalina.app

    Papierkorb löschen sudo rm -rf Install\ macOS\ Catalina.app


    Persönlich würde ich es auch mal mit dem Midnightcommander versuchen.

    Das setzt allerdings voraus, das wir es über Homebrew oder Macports installieren.

    Der Grund ist, dass es für Mac OS keine lauffähigen Binaries gibt.


    Zuletzt würde ich auf einem neuen Volume oder anderer SSD Mac OS neu installieren und die Daten migrieren.

    Das dauert zwar eine gewisse Zeit, aber nicht so lange wie dieser Thread schon existiert.


    Was meint ihr dazu? :think:


    Nachtrag: https://midnight-commander.org/wiki/Binaries


    https://formulae.brew.sh/formula/midnight-commander

  • Success! :danke2:


    Der TIpp von Sascha_77 hat geholfen. Nachdem ich mit

    sudo mv /Users/hal9000/.Trash/Install\ macOS\ Catalina.app /Users/hal9000/.Trash/Bla

    die Datei verschoben habe, konnte ich die App löschen aber nicht mehr den Bla-Ordner. Den habe ich dann aber wiederum mit

    sudo mv /Users/hal9000/.Trash/Install\ macOS\ Catalina.app /private/tmp/

    verschoben und neu gestartet!


    Jetzt isse weg!



    Vielen Dank an euch alle!

  • Diese Art Probleme sind immer mit chown und chmod lösbar.....

    Es geht um Berechtigungen...


    chown steht für change owner und erlaubt das Ändern des Eigentümer-Benutzers und/oder der Eigentümer-Gruppe von Dateien.


    The following methods are valid (and probably the best options for shell scripting):

    Code
    1. id -u # returns UID
    2. id -un # returns username
    3. id -g # returns primary (a.k.a. effictive) GID
    4. id -gn # returns primary Group Name

    See man id for more options.

    To answer this specific question if I was writing a script that would work in any environment, I wouldn't assume that the default group staff is in use and instead I would do the following if I was writing a script that could be run for any user (whether or not they modified their system):

    Code
    1. chown "$(id -un):$(id -gn)" some_file

    It's always better to be platform agnostic whenever possible (if it's not too much of a time tradeoff), as you will incur less technical debt later.

    Please note that chown's -R flag should be used with the utmost confidence. You could really mess up your system (Although it is worth noting that Apple made it hard to do since they implemented System Integrity Protection).

    Consider, for instance, if you were to chown -R 755 /var instead of chown -R 755 /var/www as root with System Integrity Protection disabled I believe that you would be in for it. I can't tell you what would break first, but it would break first on a Darwin system, but please take my word that it wouldn't be pretty.