尝试创建一个spec文件来安装许多文件(文件的数量和布局可能会发生变化),而无需手动创建目标目录结构或指定单个文件。
我查看了安装命令的帮助:
# install --help
Usage: install [OPTION]... SOURCE DEST (1st format)
or: install [OPTION]... SOURCE... DIRECTORY (2nd format)
or: install -d [OPTION]... DIRECTORY... (3rd format)
In the first two formats, copy SOURCE to DEST or multiple SOURCE(s) to
the existing DIRECTORY, while setting permission modes and owner/group.
In the third format, create all components of the given DIRECTORY(ies).
...
-d, --directory treat all arguments as directory names; create all
components of the specified directories
-D create all leading components of DEST except the last,
then copy SOURCE to DEST; useful in the 1st format
看起来-D是我想要的 - 为我创建目录结构!所以我跑了:
install -v -D -m 644 /usr/src/redhat/BUILD/samples/lib/* /var/tmp/samples-6.0.0-root//usr/client/samples/lib/
并收到以下错误:
install: installing multiple files, but last argument, `/var/tmp/samples-6.0.0-root//usr/client/samples/lib/' is not a directory
Try `install --help' for more information.
我做错了什么,不应该-D去掉最后的'/ xxx'并创建前面的结构,然后从SOURCE复制文件?我尝试在DEST结束时添加了一个虚拟字符,没有运气。我在命令行中添加了-d,但后来收到“XX存在但不是目录”形式的错误。因此,我删除了-D,并且在创建DEST结构时,不会复制任何文件。
那么,-D甚至是一个有效的选择吗?安装版本是5.2.1。可能年纪大了,但这是我必须使用的。