MakeFile 설치에서 디렉토리를 제자리로 옮기는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/417236

  •  03-07-2019
  •  | 
  •  

문제

현재 MakeFile의 일반적인 기술을 사용하여 개별 파일을 설치하고 있습니다.

install:
    install -D executable ${BIN_DIR}

그러나 나는 방금 전체 디렉토리와 그 아래에있는 모든 파일을 제자리로 이동 해야하는 상황을 가로 질러 달렸다.

~이다 cp -r 가장 좋은 방법 또는 더 많은 Linux-Y/Unix-Y 방법이 있습니까?

도움이 되었습니까?

해결책

예, 더 유쾌한 방식을 생각하기가 어렵습니다. cp -r, -R은 비교적 늦은 추가입니다. cp. 나는 당신에게 우리의 방식을 말할 수 있습니다 사용된 그것을하기 위해, 그리고 그것은 파일 시스템 등에서 깔끔하게 작동합니다.

허락하다 src 이동하려는 소스 디렉토리가되고 /path/to/target 대상에 대한 절대적인 경로가 되십시오. 그런 다음 사용할 수 있습니다.

$ tar cf - src | (cd /path/to/target; tar xf -)

다른 팁

내 버전 install(1) (데비안)는 다음과 같습니다.

   -d, --directory
          treat all arguments as directory names; create all components of the specified directories

   -t, --target-directory=DIRECTORY
          copy all SOURCE arguments into DIRECTORY

그래서 당신이 사용하고 싶다면 install(1) 일관되게 Makefile 전체에서 할 수 있습니다.

install -d destdir
install srcdir/* -t destdir

-t 그러나 재귀는 아닙니다 srcdir 디렉토리가 포함되어 있으면 복사하지 않습니다.

연결은 또 다른 실행 가능한 대안입니다. 이를 통해 여러 디렉토리 (다른 버전을 나타내는)에 액세스 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top