GNU "install" -d 플래그 - 어떻게 작동하나요?

GNU "install" -d 플래그 - 어떻게 작동하나요?

저는 디렉토리를 복사하고 그 구조를 유지하는 메이크파일 규칙을 작성하려고 합니다. 메이크파일의 다른 모든 규칙은 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

아무 일도하지!

누구든지 올바른 방향으로 나를 가리킬 수 있습니까? "gnu install -d 플래그"를 검색해봐도 별로 도움이 되지 않습니다.

답변1

install -D이 명령이 실제로 내가 원하는 것 같습니다 .

맨페이지:

-D 마지막 구성요소를 제외하고 DEST의 모든 주요 구성요소를 생성한 다음 SOURCE를 DEST에 복사합니다.

각 파일을 개별적으로 지정하지 않으면 훌륭하게 작동합니다.

답변2

install -d디렉토리를 생성하는 데에만 사용됩니다. 두 개의 디렉토리 를 생성 test하라고 지시 하고 test2. 당신은 사용해야 할 수도 있습니다testtest2installcp

답변3

일반적으로 원하는 것은 반복할 필요 없이 파일을 올바른 폴더에 설치하는 것입니다. 찾기 및 설치를 사용하여 설치 스크립트를 더 건조하게 만들 수 있습니다.

find SOURCE/ -type f -exec install -vDm 755 {} THERE/{} \;

관련 정보