我有一个 makefile,它会在目标构建目录中安装很多文件。其中一些是可执行文件,一些不是。
我之前在 Linux 上测试过带有非可执行文件install
标志的命令,但现在它坏了。我发现OSX/BSD 上没有该标志,因此我已将其删除。问题是,我需要确保根据需要创建安装文件路径中的组件目录。我认为该标志会有所帮助,并尝试了以下方法:-D -m 644
-D
-d
install .DS_Store ./tmp/build/some_dir/
...但它抱怨说some_dir
“没有这样的文件或目录”,即它不存在(这是真的)。然后我尝试了与上述相同的操作,但使用了标志-d
,并得到了另一个错误:
安装:.DS_Store 存在但不是目录
我只想要一种或多或少稳定且通用的方法来将文件复制到目标。也许我应该求助于cp
?不过,我知道两者之间存在细微但重要的区别。
答案1
install -d
将其所有参数解释为(可能)需要创建的目录。因此,我认为您需要将其作为两个命令来执行:
install -d ./tmp/build/some_dir/
install .DS_Store ./tmp/build/some_dir/