Coreutils
GNU“安裝”-d 標誌——它是如何工作的?
我正在嘗試編寫一個 makefile 規則來複製目錄,維護其結構,並且由於我們的 makefile 中的所有其他規則都使用
install
,所以我希望保持一致。在手冊頁中,它說:
概要
install [OPTION]... [-T] SOURCE DEST install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... install [OPTION]... -d DIRECTORY... -d, --directory treat all arguments as directory names; create all components of the specified directories
好的,這聽起來像我需要的……但是這些標誌沒有意義。您如何指定要安裝到的目標目錄?
我嘗試通過在本地硬碟上創建任意目錄結構來進行基本測試:
~>tree test test ├── a │ └── b │ └── c │ └── e.txt └── d 4 directories, 1 file
然後執行
install -d
並查看創建的內容:~>install -d test test2 ~>tree test2 test2 0 directories, 0 files
沒啥事兒!
誰能指出我正確的方向?Google搜尋“gnu install -d flag”並沒有給我帶來太多。
看起來該
install -D
命令實際上是我想要的。手冊頁:
-D 創建除最後一個以外的 DEST 的所有前導組件,然後將 SOURCE 複製到 DEST
效果很好,除了您必須單獨指定每個文件。
install -d
僅用於創建目錄。您告訴它創建兩個目錄,test
並且test2
.test
已經存在,所以它需要做的就是 maketest2
。我認為不install
支持複製整個目錄樹;它通常用於文件。你可能需要使用cp