Как скопировать файл только для чтения и сделать копию доступной для записи одной командой cp?
Как скопировать файл только для чтения в Linux и сделать копию доступной для записи с помощью одной команды cp в Linux (Ubuntu 10.04)?
--No-preserve и --preserve казались хорошими кандидатами, за исключением того, что они должны "и" флаги режима, в то время как я ищу что-то, что будет "или" их (режим добавления +w).
Больше деталей:
Я должен импортировать репозиторий из GIT в Perforce. Я хочу, чтобы все файлы хранилища Perforce были доступны только для чтения (именно так был разработан Perforce), а все остальные файлы, которые были получены / скопированы из файлов хранилища, доступны для записи. В настоящее время, если Makefile пытается скопировать файл только для чтения, то производный файл также будет доступен только для чтения. Это приводит к ошибкам сборки, когда cp пытается перезаписать файл только для чтения во второй раз. Конечно, --force - это обходной путь, но тогда производный файл также доступен только для чтения. Также я не хочу связываться с "chmod" после каждой команды "cp" - я сделаю это только в крайнем случае.
2 ответа
Вы должны посмотреть на команду установки.
От человека установить
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
Сделать скрипт cp1.sh, который будет добавлять chmod +w после каждого cp?:) Разница лишь в том, что сценарий не будет атомарным, но тогда я не думаю, что есть гарантии на атомарность cp в отношении каких-либо изменений атрибутов?