Я пытаюсь написать правило make-файла для копирования каталога, сохраняя его структуру, и, поскольку все другие правила в наших make-файлах используются install
, я хотел быть последовательным.
На странице руководства написано:
СИНТАКСИС
install [OPTION]... [-T] SOURCE DEST install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... install [OPTION]... -d DIRECTORY... -d, --directory treat all arguments as directory names; create all components of the specified directories
Хорошо, это звучит как то, что мне нужно ... но флаги не имеют смысла. Как указать каталог для установки?
Я попытался выполнить базовый тест, создав произвольную структуру каталогов на локальном жестком диске:
~>tree test
test
├── a
│ └── b
│ └── c
│ └── e.txt
└── d
4 directories, 1 file
А потом работает install -d
и смотрит на то, что было создано:
~>install -d test test2
~>tree test2
test2
0 directories, 0 files
Ничего не произошло!
Может кто-то указать мне верное направление? Погуглить "gnu install -d flag" не так уж и много.
cp -r
cp -r
?install -d
просто используется для создания каталогов. Вы сказали это создать две директории,test
иtest2
.test
уже существует, так что все, что нужно было сделать, это сделатьtest2
. Я не думаю, чтоinstall
поддерживает копирование целых деревьев каталогов; это обычно используется в файлах. Вам, вероятно, нужно использоватьcp
источник
install -d
это то же самое,mkdir
что вы можете указать режим, владельца, контекст SELinux и группу одновременно.Обычно вам нужно установить файлы в нужную папку, не повторяя себя. Вы можете использовать поиск и установку, чтобы сохранить ваши установочные скрипты более СУХОЙ
источник