Como copiar um arquivo somente leitura e tornar a cópia gravável com um único comando cp?

3

Como copiar um arquivo somente leitura no Linux e tornar a cópia gravável com um único comando cp no Linux (Ubuntu 10.04)?

O --no-preserve e --preserve parecem ser bons candidatos, exceto pelo fato de que eles devem "e" os flags de modo, enquanto o que eu estou procurando é algo que irá "ou" eles (add + w mode) .

Mais detalhes:

Eu tenho que importar um repositório do GIT para o Perforce. Eu quero que todos os arquivos de depósito do Perforce sejam somente leitura (é assim que o Perforce foi projetado), enquanto todos os outros arquivos que foram derivados / copiados de arquivos de depósito são graváveis. Atualmente, se um Makefile tentar copiar um arquivo somente leitura, o arquivo derivado também será somente leitura. Isso leva a erros de compilação quando o cp tenta sobrescrever o arquivo Read-Only na segunda vez. É claro que o --force é uma solução alternativa aqui, mas o arquivo derivado também é somente leitura. Também não quero mexer com "chmod" após cada comando "cp" - vou fazer isso apenas como último recurso.

    
por Hans Solo 02.03.2011 / 00:37

2 respostas

7

Você deve procurar no comando install .

De man install

SYNOPSIS
       install [OPTION]... [-T] SOURCE DEST
       install [OPTION]... SOURCE... DIRECTORY
       install [OPTION]... -t DIRECTORY SOURCE...
       install [OPTION]... -d DIRECTORY...

DESCRIPTION
       This  install  program copies files (often just compiled) into 
       destination locations you choose.  If you want to download and install
       a ready-to-use package on a GNU/Linux system, you should instead be 
       using a package manager like yum(1) or apt-get(1).

       In the first three forms, copy SOURCE to DEST or multiple SOURCE(s) to
       the existing DIRECTORY, while setting permission modes and owner/group.
       In  the  4th form, create all components of the given DIRECTORY(ies).
...
       -m, --mode=MODE
          set permission mode (as in chmod), instead of rwxr-xr-x
    
por 02.03.2011 / 00:44
0

Faça um script cp1.sh que irá adicionar um chmod + w após cada cp? :) A única diferença é que o script não vai ser atômico, mas eu não acho que haja garantias de atomicidade do CP em relação a qualquer mudança de atributo?

    
por 19.02.2016 / 00:29