用于通配符安装的Linux"install"命令

jld*_*ont 15 linux install

有没有办法使用" 安装 "一次使用"通配符"模式安装多个文件(仍然有"安装"创建主要目录层次结构)?

我尝试了几种不同的方法:

  • install -D -t /dest/path /source/path/*.py
  • install -D -t /dest/path/ /source/path/*.py
  • install -D /source/path/*.py /dest/path
  • install -D /source/path/*.py /dest/path/

请帮助...每次试用都需要花费很多时间(我pbuilder每次都要用来测试我的包装).

jld*_*ont 16

在安装之前,使用以下命令创建目录层次结构:

install -d /dest/path
Run Code Online (Sandbox Code Playgroud)

然后使用:

install -D /source/path/*.py /dest/path
Run Code Online (Sandbox Code Playgroud)

"安装"所有文件.

  • 是不是-D标志的全部内容来创建目标路径的前导父目录?如果已经使用先前的“ install”调用创建了它们,则似乎没有必要在后面的命令中使用它。您能证明它的使用合理吗?还是可以安全地假定可以在这种情况下将其删除? (2认同)

Dir*_*tel 10

也许在安装调用周围使用简单的外部for循环?那怎么样

for f in /source/path/*.py; do \
    install -D -t /dest/path $$f; \
done
Run Code Online (Sandbox Code Playgroud)

也就是说,你总是可以从你的Makefile,debian/rules文件中取出逻辑,然后独立测试它而不必运行pbuilder.

否则当然道具pbuilder用于内部项目!


小智 7

我对pbuilder一无所知,但对于我的情况(Arch Linux的PKGBUILD)我正在使用带有find的BASH for循环:

for file in $(find source -type f -name *.py); do
    install -m 644 -D ${file} dest/${file#source/}
done
Run Code Online (Sandbox Code Playgroud)

find命令可以适合于尝试或多或少地特定于被复制的内容.在上面的示例中,将选择以源/下面的.py结尾的所有常规文件.