chmod wirft fehlenden Operanden auf 764, OK auf 664

chmod wirft fehlenden Operanden auf 764, OK auf 664

777Nachdem ich zu Debuggingzwecken alles in meinem Projekt auf ( ) gesetzt hatte rwxrwxrwx, wollte ich die Offenheit verringern und die Verzeichnisse (nicht die Dateien) im Stammordner auf 664( rw-rw-r--) setzen.

Dazu habe ich (vonWie liste ich Ordner mit Bash-Befehlen auf?):

chmod 664 -- */

Das funktionierte wie erwartet. Dann wurde mir klar, dass ich das Ausführungsbit für Verzeichnisse brauchte, um sie aufzurufen. Also versuchte ich:

chmod 764 -- */

Aber das hat einen missing operand after "764"Fehler verursacht.

Ich kann die Berechtigungen manuell ändern ( chmod 764 <dir-name>) und es gibt nicht so viele Verzeichnisse, also ist es kein großes Problem, aber ich würde es gerne verstehen.

Warum kann ich chmod 764 */die Verzeichnisse in meinem aktuellen Pfad nicht auf festlegen rwxrw-r--?

Antwort1

Dies wäre sinnvoll, wenn Sie Shell-Glob-Optionen so eingestellt haben, dass

  • *umfasst Namen, die mit beginnen ., und
  • ein Platzhalter, der mit nichts übereinstimmt, verschwindet einfach, anstatt unverändert bestehen zu bleiben. (Wenn Sie beispielsweise keine Dateien haben, deren Namen mit beginnen foo, druckt der Befehl echo foo*eine leere Zeile, anstatt den Text foo*wörtlich zu drucken.)

Wenn die oben genannten Bedingungen zutreffen, wird der erste Befehl .in den Modus 664 gesetzt, was bedeutet, dass Sie beim Ausgeben des zweiten Befehls keine Leseberechtigung hatten .. Daher */konnte nicht erweitert werden und chmod 764 -- */wurde zu chmod 764 --.

verwandte Informationen