install(1) manual page tells that the install utility can create missing parent directories as required if -d options is specified. This mode seems to work half-way only, as it really creates needed directories but fails to copy specified files there:
$ cd /tmp
$ touch file1 file2
$ install -d dir file1 file2
install: file1 exists but is not a directory
$ ls -lR dir
Install -d ONLY creates directories. You are not allowed to specify both directories and filenames on the command line when using -d. This is documented by having a different synopsis line in the manpage for install -d.
(In reply to Ian Lepore from comment #1)
Thank you for explanation. This is not obvious from the synopsis. Perhaps, it should be made more clear by replacing "directory ..." with "directory1 ... directoryN" just like previous lines already have "file1 ... file N directory".
Also, one can consider this as PR feature request then: teach install(1) to create missing directories while copying files. It could use new "-F" flag for that to force such creation.
Please do not put bugs on stable@, current@, hackers@, etc
Placing this bug back on bugs@ to be triaged properly to a technical list