私はディレクトリをコピーしてその構造を維持するメイクファイルルールを作成しようとしています。メイクファイルの他のすべてのルールはinstall
それを使用するので、一貫性を維持したいと思います。
マンページには次のように記載されています。
要約
install [OPTION]... [-T] SOURCE DEST install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... install [OPTION]... -d DIRECTORY... -d, --directory treat all arguments as directory names; create all components of the specified directories
さて、それが私に必要なようですが…フラグは言うことができません。インストールするターゲットディレクトリをどのように指定しますか?
ローカルハードドライブにランダムなディレクトリ構造を作成して基本テストを試しました。
~>tree test
test
├── a
│ └── b
│ └── c
│ └── e.txt
└── d
4 directories, 1 file
次に、実行してinstall -d
何が作成されたかを確認します。
~>install -d test test2
~>tree test2
test2
0 directories, 0 files
何もしません!
誰もが正しい方向に私を指すことができますか? "gnu install -dフラグ"を検索してもあまり役に立ちません。
答え1
install -D
このコマンドは実際に私が望むようです。
マンページ:
-D最後のコンポーネントを除いて、DESTのすべての主要コンポーネントを作成し、SOURCEをDESTにコピーします。
各ファイルを個別に指定しないと、うまく機能します。
答え2
install -d
ディレクトリの作成にのみ使用されます。 2つのディレクトリを作成するtest
ように指示しますtest2
。使用する必要があるかもしれませんtest
test2
install
cp
答え3
一般的に望むのは、何も繰り返すことなくファイルを正しいフォルダにインストールすることです。検索とインストールを使用して、インストールスクリプトをより乾燥させることができます。
find SOURCE/ -type f -exec install -vDm 755 {} THERE/{} \;