Portál AbcLinuxu, 21. prosince 2025 17:05
-p na kopirování vlastnické struktury, a teď hledám, jak zkopírovat vlastnická a přístupová práva z jednoho stromu (A) do druhého stromu (B). Vždy práva pro každý odpovídající soubor.
Řešení dotazu:
# su # rsync -rog SRC DEST
rsync -frog ...
frog nezapůsobí, asi proto, že zdrojový a cílový soubor je ve skutečnosti stejný, cílový soubor díky kopii má navíc novější time stamp. Ani se to nehlo vůbec nic se nekopírovalo a změny ve vlastnících neproběhly. Dokonce ani frpogW s vlastníky nic neudělalo a v tomto případě už se soubory kopírovaly.
-I, --ignore-times
V jiném případě bude dobré vytvořit nějaký bashový one-liner
.
SRC="./VSTUPNI_ADRESAR/" && DEST="./VYSTUPNI_ADRESAR/" && find $SRC -type f -printf "chown -v %u:%g '%p'\n" -or -type d -printf "chown -v %u:%g '%p'\n" | sed "s^${SRC}^${DEST}^" | source /dev/stdin
cd "$B"
find . -exec chown --reference "$A"/{} {} \;
find . -exec chmod --reference "$A"/{} {} \;
Předpokládá se, že
{} použít '{}'.
find … -exec" je používání '{}' bez escapování natolik rozšířené, že si snad nikdo nedovolí to změnit, protože by to rozbilo obrovské množství skriptů.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.