28 Nov 2013

chown, wenn Dateinamen Leerzeichen enthalten

chown / chmod mag es nicht, wenn Leerzeichen in einem Dateinamen sind. Mann bekommt dann eine wenig aussagekräftige Fehlermeldung wie: chmod: invalid mode: ‘chrissie:users’

Das Problem ist, dass readline, welches standardmäßig die Eingaben bei chmod und chown liest, nach dem Leerzeichen eine neue Option erwartet. Und weil readline dies tut, hilft es auch nichts, wenn man den Inter-File-Separator IFS umdefiniert. Man muss zu einem Trick mittels find und print0 greifen.

  • Problem
    chrissie@balearen ~/x $ chmod -R chrissie:users *
    chmod: invalid mode: 'chrissie:users'
    Try 'chmod --help' for more information.
    
  • Lösung:
    chrissie@balearen ~/x $ find . -print0 | xargs -0 chown chrissie:users