한 폴더의 내용을 다른 폴더에 설치

한 폴더의 내용을 다른 폴더에 설치

폴더 내용을 내 시스템의 다른 폴더에 설치하기 위해 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옵션은 다음을 의미합니다.목적지디렉토리입니다.

각각을 복사하는 디렉토리 옵션을 사용하십시오.소스 파일입력하다대상 폴더소스 파일 이름으로

관련 정보