
Wie stelle ich ein, dass alle *.java-Dateien im aktuellen Verzeichnis und allen seinen Unterverzeichnissen allen Benutzern Leseberechtigung gewähren?
Ich möchte außerdem festlegen, dass alle Dateien mit einer Größe von mindestens 1 Kilobyte im aktuellen Verzeichnis und allen Unterverzeichnissen einer Administratorgruppe zugewiesen werden.
Antwort1
Alternative:Um die Leseberechtigung für alle .java-Dateien im aktuellen Verzeichnis festzulegen, verwenden Sie diesen Befehl:
chmod -R 444 *.java
Um allen Dateien mit einer Größe von mindestens 1 Kilobyte im aktuellen Verzeichnis und allen Unterverzeichnissen die Gruppe „Administrator“ zuzuweisen.
find /yourdirectorypath -size +1k -exec chgrp admin {} \;
Notiz:Das "-R" steht für rekursiv, was auch Ihre Unterverzeichnisse abdeckt
Antwort2
Wie stelle ich ein, dass alle *.java-Dateien im aktuellen Verzeichnis und allen seinen Unterverzeichnissen allen Benutzern Leseberechtigung gewähren?
In Bash ≥4.0 und Zsh:
chmod a+r ./**/*.java
Auf jedem POSIX-kompatiblen System (d. h. jeder nicht-antiken Unix-Variante und mehr):
find . -name '*.java' -exec chmod a+r {} +
Weisen Sie allen Dateien mit einer Größe von mindestens 1 Kilobyte im aktuellen Verzeichnis und allen Unterverzeichnissen die Gruppe „Administrator“ zu.
In zsh:
chgrp admin ./**/*(.L+1023)
Auf jedem POSIX-kompatiblen System:
find . -type f -size +1023c -exec chgrp admin {} +
Antwort3
Verwenden Sie find und xargs
find . -name \*.java | xargs chmod o+r
oder
find . -name \*.java -print0 | xargs -0 chmod o+r
Die zweite Version verarbeitet Leerzeichen in Datei- oder Verzeichnisnamen.
Möglicherweise müssen Sie auch die Verzeichnisberechtigungen korrigieren.
find . -type d -print0 | xargs -0 chmod o+rx
Sie können die Aktualisierung von Berechtigungen vermeiden, die bereits korrekt sind. Suchen Sie auf der Manpage nach Berechtigungen und lesen Sie sie durch.
Antwort4
Um die Leseberechtigung für alle .java-Dateien im aktuellen Verzeichnis festzulegen, verwenden Sie diesen Befehl
chmod +r *.java