フォルダの内容を自分のシステムの他のフォルダにインストールするために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
オプションは次のことを意味します。目的地ディレクトリです。
それぞれをコピーするディレクトリオプションを使用します。ソースファイル入力する宛先フォルダソースファイル名で