Coreutils

GNU“安裝”-d 標誌——它是如何工作的?

  • March 7, 2019

我正在嘗試編寫一個 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已經存在,所以它需要做的就是 make test2。我認為不install支持複製整個目錄樹;它通常用於文件。你可能需要使用cp

引用自:https://unix.stackexchange.com/questions/21260