Shell / terminal / bash команда или сценарий для копирования списка файлов из одного проекта в другой

У них есть исправления, примененные к дереву исходного кода, которые адаптируют местоположения.

Доступно достаточно «стандартов», чтобы каждый дистрибутив мог выбирать, основываясь на (личных) предпочтениях и / или исторической практике.Редко бывает решение, которое имеет преимущества только только . Иногда это раздражает / сбивает с толку, но согласованность внутри одного дистрибутива является наиболее важной задачей: это приводит к меньшему беспорядку и упрощению угадывания того, где что-то может быть для программы Y, если вы уже знаете, где подобные вещи (например, файлы установки / конфигурации) находятся для программы X.

Пример приложения исправления

Мой пакет python ruamel.yaml доступен в Debian Sid. Раньше он зависел от ruamel.base , и пользователи, которые устанавливали через PyPI, могли иметь более старые несовместимые версии ruamel.base . Использование setup.py / PyPI не является настоящим управлением пакетами, поэтому вы не можете удалить пакет, ранее установленный через зависимости. Я решил проблему для пользователей PyPI, создав новую версию ruamel.base , которая устранила проблемы, связанные со старыми пакетами ruamel.base , и сделала ruamel.yaml зависит от этой более новой версии.

Для Сида это не проблема: более старые версии ruamel.base не были установлены (или могли быть удалены с помощью управления пакетами). Поэтому они применяют патч , который вы можете найти на информационной странице ruamel.yaml для Sid , который удаляет зависимость ruamel.yaml от ruamel.base .

Другие дистрибутивы имеют аналогичные настройки. Например. если вы посмотрите на спецификации создания исходного файла RPM (например,g для RedHat / CentOS / SuSE), вы увидите, что вы объединяете исходный исходный архив пакета с одним или несколькими патчами, которые будут применены перед настройкой / компиляцией.

0
11.11.2018, 03:48
1 ответ

Это то, что cpioдля :копирования списка файлов. Я всегда нахожу направления «вход» и «выход» сбивающими с толку, и я рад, что у GNU есть --createи --extract.

 cd your/source/dir
 cpio --create < my-files-to-copy.txt | (cd your/dest/dir && cpio --extract)

Существует множество вариантов cpioдля управления такими вещами, как сохранение права собственности/временных меток. Страница руководства поможет вам. Важно знать, что cpioне будет создавать каталоги, если вы (a )не скопируете их в поток (, например, в свой список файлов для копирования )или (b )используйте опцию --make-directoriesна стороне извлечения.

1
28.01.2020, 02:41

Теги

Похожие вопросы