폴더 내용을 내 시스템의 다른 폴더에 설치하기 위해 Makefile을 작성하려고 합니다.
나는 이와 같은 동일한 디렉토리 구조를 유지하고 싶습니다.
localfolder
├── a
└── b
├── c
└── d
├── e
└── f
다른 옵션을 시도했지만 아무것도 작동하지 않습니다.
$ install -d localfolder /opt/folder
(does nothing)
$ install -t localfolder /opt/folder
install: omitting directory '/opt/folder'
$ install -D localfolder /opt/folder
install: omitting directory 'localfolder'
누구든지 올바른 방향으로 나를 가리킬 수 있습니까? "linux install command"에 대한 Google 검색에서는 관련 정보가 나오지 않았습니다.
감사해요!
답변1
해결책을 원하는 분들을 위해 다음과 같이 설명합니다. 설치 명령을 재귀적으로 실행할 수 없습니다. 그래서 이를 달성하기 위해 쉘 스크립트를 작성했습니다.
첫 번째 매개변수는 복사할 폴더, 두 번째 매개변수는 대상 디렉터리입니다.
#!/bin/sh
# Program to use the command install recursivly in a folder
magic_func() {
echo "entering ${1}"
echo "target $2"
for file in $1; do
if [ -f "$file" ]; then
echo "file : $file"
echo "installing into $2/$file"
install -D $file $2/$file
elif [ -d "$file" ]; then
echo "directory : $file"
magic_func "$file/*" "$2"
else
echo "not recognized : $file"
fi
done
}
magic_func "$1" "$2"
포인트로도 활용 가능해요여기
답변2
원천파일 목록의 한 면 install
(에 따름 info
). 그래서, 사용
install source/* /destination
-d
옵션 은 -D
대상에 누락된 디렉터리를 생성합니다(차이점이 있음).
-t
옵션은 다음을 의미합니다.목적지디렉토리입니다.
각각을 복사하는 디렉토리 옵션을 사용하십시오.소스 파일입력하다대상 폴더소스 파일 이름으로