Portál AbcLinuxu, 12. května 2025 03:45
-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.