Jak mogę rekurencyjnie kopiować pliki bez nadpisywania istniejących uprawnień?

9

Kiedy kopiuję pliki z jednego katalogu do drugiego, uprawnienia do katalogu są resetowane (np .: od 0755 do 0775), co powoduje problemy, zmuszając mnie do powrotu i ręcznego resetowania uprawnień do katalogu. Obecnie robięcp -r /source/directory /destination/directory

Chcę skopiować wszystkie pliki i nowe katalogi, ale nie nadpisywać uprawnień istniejących katalogów.

Eva
źródło

Odpowiedzi:

5

Aby zachować linki, możesz użyć cp( manpage dla cp ) z -dflagą, która jest równoważna --no-dereference --preserve=links.

Aby połączyć to z flagami -pi -R, możesz użyć flagi archiwum -a.

Val
źródło
7

Dodaj flagę -p

cp -pR /source/dir /dest/dir

Od man cp:

-p     same as --preserve=mode,ownership,timestamps
vfbsilva
źródło
2

Mój ~/.bashrczostał zmodyfikowany, aby zawierał

alias cp='cp -i --preserve=all'

Oznacza to, że kiedy używam cp, wyświetli również monit przed nadpisaniem ( -i) i zachowa wszystko (tj. Tryb, własność, znaczniki czasu oraz, jeśli to możliwe, dodatkowe atrybuty: kontekst, linki, xattr).

Zawsze możesz zmienić to na modezamiast zamiast, alljeśli chcesz, ale lubię ten alias, aby zmienić wartości domyślne cp.

Krogulec
źródło