Qual è il modo migliore per spostare una directory in posizione in un'installazione di Makefile?

StackOverflow https://stackoverflow.com/questions/417236

  •  03-07-2019
  •  | 
  •  

Domanda

Attualmente sto usando la solita tecnica nel mio Makefile per installare singoli file:

install:
    install -D executable ${BIN_DIR}

Ma ho appena incontrato una situazione in cui ho bisogno di spostare un'intera directory e tutti i file sottostanti in posizione.

cp -r è il modo migliore o esiste un modo più linux-y / unix-y per farlo?

È stato utile?

Soluzione

Sì, è difficile pensare a un modo più unix-ish di cp -r , sebbene -r sia un'aggiunta relativamente recente a cp . Posso dirti il ??modo in cui abbiamo usato per farlo, e funziona perfettamente su tutti i filesystem e simili:

Consenti a src di essere la directory di origine che desideri spostare e / path / to / target sia un percorso assoluto verso la destinazione. Quindi puoi usare:

$ tar cf - src | (cd /path/to/target; tar xf -)

Altri suggerimenti

La mia versione di install (1) (Debian) ha:

   -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

Quindi se vuoi usare install (1) in modo coerente in tutto il tuo Makefile puoi fare:

install -d destdir
install srcdir/* -t destdir

-t non è ricorsivo tuttavia - se srcdir contiene directory, non verranno copiate.

Il collegamento è un'altra alternativa praticabile. Ciò consentirebbe di mantenere accessibili più directory (che rappresentano versioni diverse).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top