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

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

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

ポイントとしても活用可能です。ここ

おすすめ記事