Come posso copiare ricorsivamente i file senza sovrascrivere le autorizzazioni esistenti?


9

Quando copio i file da una directory a un'altra, le autorizzazioni della directory vengono ripristinate (ad esempio: da 0755 a 0775), e ciò causa problemi, costringendomi a tornare indietro e ripristinare manualmente le autorizzazioni della directory. Attualmente sto facendocp -r /source/directory /destination/directory

Voglio copiare tutti i file e le nuove directory, ma non sovrascrivere le autorizzazioni delle directory esistenti.

Risposte:


5

Per conservare i collegamenti è possibile utilizzare cp( manpage per cp ) con il -dflag, che equivale a --no-dereference --preserve=links.

Per combinare questo con i flag -pe -Rè possibile utilizzare il flag di archivio -a.


7

Aggiungi -p flag

cp -pR /source/dir /dest/dir

Da man cp:

-p     same as --preserve=mode,ownership,timestamps

2

Il mio ~/.bashrcè stato modificato per contenere

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

Ciò significa che quando lo uso cp, verrà anche richiesto prima di sovrascrivere ( -i) e preservare tutto (ad es. Modalità, proprietà, timestamp e, se possibile, attributi aggiuntivi: contesto, collegamenti, xattr).

Puoi sempre cambiarlo in solo modeinvece che allse ti piace, ma mi piace avere questo alias per cambiare le impostazioni predefinite di cp.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.