linux - script - verificar se arquivo existe bash




No Unix, posso executar o 'make' em um diretório sem cd'ing para esse diretório primeiro? (4)

Como observado em outras respostas, make (1) tem uma opção -C para isso; vários comandos têm opções semelhantes (por exemplo, tar). É útil notar que, para outros comandos que não possuem tais opções, pode-se usar o seguinte:

(cd /dir/path && command-to-run)

Isso executa o comando em um sub-shell que primeiro tem seu diretório de trabalho alterado (enquanto deixa o diretório de trabalho do shell pai sozinho). Aqui && é usado em vez de ; para capturar casos de erro em que o diretório não pode ser alterado.

No Unix, posso executar o 'make' em um diretório sem cd'ing para esse diretório primeiro?


Se o motivo pelo qual você não deseja fazer o cd para um diretório é porque você precisa permanecer no diretório atual para uma tarefa posterior, é possível usar o pushd e o popd:

pushd ProjectDir ; make ; popd

Isso vai para o ProjectDir, executa make e volta para onde você estava.


makefile:

all:
    gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test

run:
    ./build/test

ou

run:
    ./../build/test

etc.


make -C /path/to/dir







makefile