
我有一個 makefile,它在我的目標建置目錄中安裝了許多檔案。其中有些是可執行的,有些則不是。
我之前在 Linux 上用不可執行檔的install
標誌測試了該命令,但現在它壞了。-D -m 644
我發現該-D
標誌在 OSX/BSD 中不可用,並已將其刪除。問題是,我需要確保我正在安裝的檔案路徑中的元件目錄是根據需要建立的。我認為該-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/