install предлагает ряд функций в дополнение к копированию файлов в каталог.
-sопция удаляет таблицу символов из исполняемого, экономя пространство
-mопция устанавливает биты разрешения. Файлы, находящиеся в каталоге разработчика, были созданы с учетом его или ее маски, что может помешать другим выполнить их. install -m 755 file1 /usr/local/binгарантирует, что каждый может выполнить файл, что вполне вероятно, что разработчик хочет для файла в общем каталоге.
-oи -gопции установить владельца и группу. При cpэтом для владельца и группы целевого файла будут заданы uid и gid того, кто их запускал cp, а с cp -pвладельцем и группой целевого файла будут те же, что и у файла в каталоге сборки, ни один из которых не может будь тем, что хочет разработчик. wallПрограмма должна быть в группе tty, то screenпрограмма должна быть группа utmp, и т.д.
- это уменьшает количество команд, которые нужно поместить в рецепт make-файла.
install -s -m 755 -o root -g bin file1 file2 lib/* $(DESTDIR)более емкий , чем четыре команд cp, strip, chmod, и chown.
Последний пункт, вероятно, объясняет, почему installкоманда была изобретена и почему многие make-файлы ее используют.
Installне всегда используется, хотя Я видел, cp -r lib $(DESTDIR)/libкогда есть целое дерево, полное материалов для копирования, и ./install.shесли разработчик предпочитает использовать собственный скрипт. Многие пакеты имеют install.shпроизводные от того, который поставляется с X11, который похож, installно поддерживает -t(трансформировать) опцию для переименования файлов назначения указанным способом.