In meiner Linux-Box habe ich zwei Verzeichnisse:
- Arbeitsdateien mit falschen Berechtigungen
- ältere Versionen derselben Dateien mit den richtigen Berechtigungen (Berechtigungen und Benutzer und Gruppen)
Ich muss die Berechtigungen nur synchronisieren, ohne den Dateiinhalt zu ändern. Ich habe rsync ausprobiert, kann aber keine geeignete Option finden. Kannst du mir einen Rat geben?
Danke im Voraus.
BEARBEITEN
Dank Ihrer Vorschläge habe ich dieses Skript. Die Teilbaumberechtigungen werden rekursiv geändert:
#!/bin/bash
cd good
find $1/* | while read DIR
do
chown --reference="$DIR" "/bad/$DIR"
chmod --reference="$DIR" "/bad/$DIR"
done
Kein Meisterwerk, aber es funktioniert bei mir.
linux
filesystems
rsync
Massimog
quelle
quelle
chmod --reference=ReferenceFile
undchown --reference=ReferenceFile
Antworten:
Sie können den
--reference=file
Schalter sowohl auf chmod als auch auf chown verwenden , um dies zu tun, zquelle
Sie können dies versuchen. Sie benötigen absolute Pfade für die beiden für dieses Skript erforderlichen Argumente. Führen Sie es wie folgt aus: copyperms.sh source_dir target_dir
Hier ist das Skript: cat copyperms.sh
Kann durch Verwendung der auskommentierten while-Schleife für weitere Zwecke angepasst werden, ist jedoch langsamer.
$ time mperms / adp / code / adp / safe / code
Verwenden von xargs:
real 0m0.107s Benutzer 0m0.008s sys 0m0.004s
Verwenden der while-Schleife:
real 0m0.234s Benutzer 0m0.012s sys 0m0.028s sys 0m0.028s
quelle