저는 디렉토리를 복사하고 그 구조를 유지하는 메이크파일 규칙을 작성하려고 합니다. 메이크파일의 다른 모든 규칙은 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
. 당신은 사용해야 할 수도 있습니다test
test2
install
cp
답변3
일반적으로 원하는 것은 반복할 필요 없이 파일을 올바른 폴더에 설치하는 것입니다. 찾기 및 설치를 사용하여 설치 스크립트를 더 건조하게 만들 수 있습니다.
find SOURCE/ -type f -exec install -vDm 755 {} THERE/{} \;