Sto cercando la differenza tra cp -r
e cp -a
. Che cosa significa "ricorsivo" in termini di copia di file da una cartella?
Sto cercando la differenza tra cp -r
e cp -a
. Che cosa significa "ricorsivo" in termini di copia di file da una cartella?
Risposte:
Ricorsivo significa che cp
copia il contenuto delle directory e se una directory ha delle sottodirectory, anche queste vengono copiate (ricorsivamente). Senza -R
, il cp
comando salta le directory. -r
è identico a quello -R
su Linux, differisce in alcuni casi limite in alcune altre varianti unix.
Per impostazione predefinita, cp
crea un nuovo file con lo stesso contenuto del vecchio file e le stesse autorizzazioni ma limitato da umask ; la copia è datata dal momento della copia e appartiene all'utente che la copia. Con l' -p
opzione, la copia ha lo stesso tempo di modifica, lo stesso tempo di accesso e le stesse autorizzazioni dell'originale. Ha anche lo stesso proprietario e gruppo dell'originale, se l'utente che esegue la copia ha l'autorizzazione per creare tali file.
L' -a
opzione significa -R
e -p
, oltre a poche altre opzioni di conservazione. Tenta di effettuare una copia il più vicino possibile all'originale: stesso albero di directory, stessi tipi di file, stessi contenuti, stessi metadati (tempi, autorizzazioni, attributi estesi, ecc.).
-r
perché -a
(per a
ottenere) è sempre il più sicuro e probabilmente quello che ti aspettavi che accadesse.
-r
è perché sei su una variante unix diversa da Linux che non ha -a
, e in genere dovresti usare cp -rp
. Or rsync -a
.
L'opzione -r o -R per "ricorsivo" significa che copierà tutti i file inclusi i file all'interno delle sottocartelle.
L'opzione -a elencata è la stessa di -dR, il che significa che conserverà i collegamenti e copierà il contenuto delle sottodirectory. Ciò che significa preservare i collegamenti è che non seguirà i collegamenti poiché sta copiando ricorsivamente.