
내 대상 빌드 디렉토리에 많은 파일을 설치하는 makefile이 있습니다. 이들 중 일부는 실행 가능하고 일부는 그렇지 않습니다.
이전에 Linux에서 실행할 수 없는 파일에 대한 install
플래그를 사용하여 명령을 테스트했지만 이제는 중단되었습니다. OSX/BSD에서는 플래그를 사용할 수 없다는 -D -m 644
것을 발견하고 -D
이를 제거했습니다. 문제는 설치하려는 파일 경로의 구성 요소 디렉터리가 필요에 따라 생성되었는지 확인해야 한다는 것입니다. 나는 -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/