16

現在、Makefile で通常の手法を使用して、個々のファイルをインストールしています。

install:
    install -D executable ${BIN_DIR}

しかし、ディレクトリ全体とその下にあるすべてのファイルを所定の位置に移動する必要がある状況に遭遇しました。

これを行うための最良の方法はcp -rありますか、それともよりlinux-y/unix-yの方法がありますか?

4

3 に答える 3

7

cp -rええ、 -r は に比較的遅れて追加されましたが、より UNIX 風の方法を考えるのは難しいcpです。私たちが以前行っていた方法をお話しできます。それは、ファイルシステムなど全体でうまく機能します。

移動srcするソース ディレクトリ/path/to/targetを、ターゲットへの絶対パスにします。次に、次を使用できます。

$ tar cf - src | (cd /path/to/target; tar xf -)
于 2009-01-06T17:00:25.217 に答える
5

私のバージョンのinstall(1)(Debian)には次のものがあります:

   -d, --directory
          treat all arguments as directory names; create all components of the specified directories

   -t, --target-directory=DIRECTORY
          copy all SOURCE arguments into DIRECTORY

したがって、Makefile 全体で一貫して使用したい場合は、次のようにinstall(1)することができます。

install -d destdir
install srcdir/* -t destdir

-tただし、再帰的ではありませんsrcdir。ディレクトリが含まれている場合、それらはコピーされません。

于 2009-01-06T17:01:35.853 に答える
0

リンクは別の実行可能な代替手段です。これにより、複数のディレクトリ(異なるバージョンを表す)にアクセスできるようになります。

于 2009-01-06T17:56:24.777 に答える