あるフォルダの内容を別のフォルダにインストールする

あるフォルダの内容を別のフォルダにインストールする

フォルダの内容を自分のシステムの他のフォルダにインストールするために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

解決策が欲しい人のために、次のように説明します。インストールコマンドを再帰的に実行できません。だからこれを達成するためにシェルスクリプトを書いた。

最初のパラメータはコピーするフォルダ、2番目のパラメータはターゲットディレクトリです。

#!/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オプションは次のことを意味します。目的地ディレクトリです。

それぞれをコピーするディレクトリオプションを使用します。ソースファイル入力する宛先フォルダソースファイル名で

関連情報