3

Как скопировать файл только для чтения в Linux и сделать копию доступной для записи с помощью одной команды cp в Linux (Ubuntu 10.04)?

--No-preserve и --preserve казались хорошими кандидатами, за исключением того, что они должны "и" флаги режима, в то время как я ищу что-то, что будет "или" их (режим добавления +w).

Больше деталей:

Я должен импортировать репозиторий из GIT в Perforce. Я хочу, чтобы все файлы хранилища Perforce были доступны только для чтения (именно так был разработан Perforce), а все остальные файлы, которые были получены / скопированы из файлов хранилища, доступны для записи. В настоящее время, если Makefile пытается скопировать файл только для чтения, то производный файл также будет доступен только для чтения. Это приводит к ошибкам сборки, когда cp пытается перезаписать файл только для чтения во второй раз. Конечно, --force - это обходной путь, но тогда производный файл также доступен только для чтения. Также я не хочу связываться с "chmod" после каждой команды "cp" - я сделаю это только в крайнем случае.

2 ответа2

7

Вы должны посмотреть на команду установки .

От человека установить

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
0

Сделать скрипт cp1.sh, который будет добавлять chmod +w после каждого cp? :) Разница лишь в том, что сценарий не будет атомарным, но тогда я не думаю, что существуют гарантии на атомарность cp при любых изменениях включенных атрибутов?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .