Unix “cp -p”. Posso preservar atributos seletivamente?

3

Gostaria de copiar os horários de modificação e acesso, mas não o ID do usuário. Se eu usar

cp -p source target

Ele copiará tudo.

Estou tentando copiar arquivos para um usuário diferente, mas manter as datas originais intactas.

    
por Adam 13.10.2013 / 21:52

2 respostas

6

Do manual cp de GNU coreutils :

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

Então, você está procurando

cp --preserve=mode,timestamps source target

Mas se você usar algum sistema operacional não-GNU, talvez não seja possível usar essa opção longa com cp . Nesse caso, você pode dar a rsync a try, onde você pode especificar em detalhes quais atributos devem ser preservados (pesquise a página man por "preserve"):

    -H, --hard-links            preserve hard links
    -p, --perms                 preserve permissions
    -E, --executability         preserve executability
    -A, --acls                  preserve ACLs (implies -p)
    -X, --xattrs                preserve extended attributes
    -o, --owner                 preserve owner (super-user only)
    -g, --group                 preserve group
        --devices               preserve device files (super-user only)
        --specials              preserve special files
    -t, --times                 preserve modification times

Então, para se assemelhar ao comando cp acima, use algo como

rsync -pEt source target

Para testar o comando antecipadamente, você pode iniciar um "dry-run" com -n . Adicione também o parâmetro detalhado -v para ver o que está acontecendo:

rsync -nv -pEt source target

No entanto, não tenho certeza se o horário de acesso também será copiado.

    
por 13.10.2013 / 21:56
0

Eu acredito que o comando ditto preserva datas.

ditto src target

    
por 17.10.2013 / 23:22