MakeFile 설치에서 디렉토리를 제자리로 옮기는 가장 좋은 방법은 무엇입니까?
문제
현재 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
디렉토리가 포함되어 있으면 복사하지 않습니다.
연결은 또 다른 실행 가능한 대안입니다. 이를 통해 여러 디렉토리 (다른 버전을 나타내는)에 액세스 할 수 있습니다.
제휴하지 않습니다 StackOverflow