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